给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。
示例 1:
输入: “aba”
输出: True
示例 2:
输入: “abca”
输出: True
解释: 你可以删除c字符。
class Solution {
public:
bool _validPalind(string s,int left,int right)
{
while(left < right)
{
if(s[left++] != s[right--])
return false;
}
return true;
}
bool validPalindrome(string s)
{
int left = 0;
int right = s.size()-1;
while(left < right)
{
if(s[left] == s[right])
{
left++;
right--;
}
else
{
return _validPalind(s,left,right-1)||_validPalind(s,left+1,right);
}
}
return true;
}
};