给定一个非空字符串 s,请判断如果 最多 从字符串中删除一个字符能否得到一个回文字符串。
示例 1:
输入: s = “aba”
输出: true
示例 2:
输入: s = “abca”
输出: true
解释: 可以删除 “c” 字符 或者 “b” 字符
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/RQku0D
class Solution(object):
def validPalindrome(self, s):
"""
:type s: str
:rtype: bool
"""
if s == s[::-1]:
return True
left, right = 0, len(s)-1
while left < right:
if s[left] == s[right]:
left += 1
right -= 1
else:
s = s[left:right+1]
break
temp1 = s[1:]
temp2 = s[:-1]
if temp1 == temp1[::-1] or temp2 == temp2[::-1]:
return True
return False