题目截图
题目分析
- 无脑做法平方复杂度凉凉
- 从两边往中间双指针check
- 一旦left和right不等,考虑去掉当前left或者right,再判断里面的是否回文,只要有一个回文即可为true
ac code
class Solution {
private String _s = null;
public boolean validPalindrome(String s) {
_s = s;
int left = 0, right = s.length() - 1;
while (left < right) {
if (s.charAt(left) == s.charAt(right)) {
left++;
right--;
} else {
return (checkPalindrome(left + 1, right) || checkPalindrome(left, right - 1));
}
}
return true;
}
public boolean checkPalindrome(int left, int right) {
while (left < right) {
if (_s.charAt(left) == _s.charAt(right)) {
left++;
right--;
} else {
return false;
}
}
return true;
}
}
总结