只能更改一处的字符,判断这个字符串是否为回文串。一头一尾两头开始比较。遇见不相等的,就面临两种去除的情况,去除前面的还是去除后面的,然后判断剩下的是否为回文串。
class Solution {
public boolean validPalindrome(String s) {
int count = 0;
int len = s.length();
int p1 = 0,p2 = len-1;
while(p1<p2){
if(s.charAt(p1)==s.charAt(p2)){
p1++;
p2--;
}else{
if(count==1){
return false;
}
if(s.charAt(p1+1)==s.charAt(p2)){
p1++;
}else if(s.charAt(p1)==s.charAt(p2-1)){
p2--;
}
count++;
}
}
return true;
}
}