解题思路:
(1)夹逼定理
(2)两处修改位置,只有一次机会,分别前后
class Solution {
public:
bool validPalindrome(string s) {
int i=0,j=s.size()-1,tag_i=0,tag_j=0;
while(i<=j) {
if (s[i]==s[j]) { //一次比较下一个
i++;
j--;
} else { //开始修改,共有两处修改位置,前后
tag_i = i;
tag_j = j;
i++;
while (i<=j) {
if (s[i]==s[j]) {
i++;
j--;
} else { //回退,修改另一个位置
i = tag_i;
j = tag_j-1;
while(i<=j) {
if (s[i]==s[j]) {
i++;
j--;
} else return false;
}
return true;
}
}
return true;
}
}
return true;
}
};