Valid Palindrome II
给一个字符串问是否能通过删除最多一个字符后变成palindrome.
先写一个check回文的方法, 然后找到不对称的地方, 这时候已经知道要删除一个字符, 所以主要看删除后是否有可能变成回文即可.
class Solution {
public:
bool validPalindrome(string s) {
int left = 0;
int right = s.length() - 1;
while(left < right) {
if(s[left] != s[right]) {
return check(s, left + 1, right) || check(s, left, right-1);
}
left++, right--;
}
return true;
}
bool check(string s, int i, int j) {
while(i < j) {
if(s[i] != s[j])
return false;
i++;
j--;
}
return true;
}
};