题目

思路
- 以"abdda"这个串为例,此时i指向'b',j指向'd',发现不对了。
- 但是有一次删除的机会,此时子串范围为(i+1, j)或(i, j-1)的俩子串只要有任意一个是回文串,则结果就是回文串,否则就不是。
代码
class Solution {
public boolean validPalindrome(String s) {
int i = 0, j = s.length() - 1;
while (i < j) {
if (s.charAt(i) != s.charAt(j)) {
return isPal(s, i + 1, j) || isPal(s, i, j - 1);
}
i++;
j--;
}
return true;
}
public boolean isPal(String s, int start, int end) {
int i = start, j = end;
while (i < j) {
if (s.charAt(i) != s.charAt(j)) {
return false;
}
i++;
j--;
}
return true;
}
}