题目描述
blablabla
样例
blablabla
递归做法
blablabla
时间复杂度
参考文献
Python3 递归做法
def validPalindrome(self, s):
# solution 2 递归做法
i = 0; j = len(s)-1
while i <j:
if s[i]!=s[j]:
return self.isPalindrome(s,i+1,j) or self.isPalindrome(s,i,j-1)
i +=1
j -=1
return True
def isPalindrome(self,s,i,j):
while i < j:
if s[i]!=s[j]:
return False
i +=1
j -=1
return True
算法2
纯粹数组操作
blablabla
时间复杂度
参考文献
Python3
n = len(s)
if n <3:
return True
for k in range((n+1)//2):
if s[k] != s[-k-1]:
# temp = k
break
if k ==(n+1)//2-1:
return True
a = s[k+1: n-k]
if a == a[::-1]:
return True
b = s[k: n-k-1]
if b == b[::-1]:
return True
return False