给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。
示例 1:
输入: s = "aba"
输出: true
示例 2:
输入: s = "abca"
输出: true
解释: 你可以删除c字符。
示例 3:
输入: s = "abc"
输出: false
提示:
1 <= s.length <= 10^5
s 由小写英文字母组成
方法一:
class Solution:
def validPalindrome(self, s: str) -> bool:
l = 0
r = len(s) - 1
while l < r:
if s[l] != s[r]:
return isPalindrome(s, l+1, r) or isPalindrome(s, l, r-1)
else:
l += 1
r -= 1
return True
def isPalindrome(s, l, r):
while l < r:
if s[l] != s[r]: return False
else:
l += 1
r -= 1
return True
网友评论