LeetCode 680 Valid Palindrome II(左右指针)
程序员文章站
2022-06-04 16:17:38
...
题目链接:点击这里
题意:给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。
class Solution {
public:
bool isPalindrome(string s, int left, int right)
{
int i = left, j = right;
while(i<j)
{
if(s[i]!=s[j]) return false;
i++;
j--;
}
return true;
}
bool validPalindrome(string s) {
int i = 0, j = s.length()-1;
while(i<j)
{
if(s[i]==s[j])
{
i++;
j--;
}
else
{ //或者删除s[i],或者删除s[j],看剩下的字符串是否是回文串
return isPalindrome(s, i+1, j) || isPalindrome(s, i, j-1);
}
}
return true;
}
};