题目:
啥是回文?
从左往右读和从右往左读是一样的叫回文
思路:
(1)使用双指针的方法从字符串的端和尾开始比较,若相等则左边位置加1,右边位置减1
(2)若端尾不相等则删除左边的1个字符或删除右边的1个字符,变成一个新的字符串后再判断是否为回数
代码:
class Solution:
def validPalindrome(self, s):
left = 0
right = len(s) - 1
while left < right:
if s[left] != s[right]:
return self.huishu(s[left+1 : right+1]) or self.huishu(s[left:right])
left += 1
right -= 1
return True
def huishu(self,x):
if x == x[::-1]:
return True
else:
return False
if __name__ == '__main__':
print('s =')
s = str(input())
w = Solution()
res = w.validPalindrome(s)
print('result = ',res)
说明:
[::-1]是将一个数组或字符串倒序排列
b = str('hei')
b = b[::-1]
print('字符串倒序:',b)
字符串倒序: ieh