680. 验证回文字符串 Ⅱ
题目描述
解题思路
双指针,初始分别指向首和尾,当左右指针指向字符相同时,更新左右指针;当不相同时,删除左指针或右指针,删除后两个有一个是回文串即可。
代码实现
class Solution:
def validPalindrome(self, s: str) -> bool:
def isPalindrome(s: str):
start, end = 0, len(s) - 1
while start < end:
if s[start] == s[end]:
start += 1
end -= 1
else:
return False
return True
start, end = 0, len(s) - 1
while start < end:
if s[start] == s[end]:
start += 1
end -= 1
else:
return isPalindrome(s[start + 1: end + 1]) or isPalindrome(s[start: end])
return True