Valid Palindrome II
Given a non-empty strings
, you may deleteat mostone character. Judge whether you can make it a palindrome.
Example
Example 1:
Input:
"aba"
Output:
True
Example 2:
Input:
"abca"
Output:
True
Explanation:
You could delete the character 'c'.
Note
在不一致的情况下,删左边或者删右边,继续判断
return isSubPalindrome(s, start + 1, end) ||
isSubPalindrome(s, start, end - 1);
Code
class Solution {
public boolean validPalindrome(String s) {
int start = 0, end = s.length() - 1;
while (start < end) {
if (s.charAt(start) == s.charAt(end)) {
start++;
end--;
} else {
break;
}
}
if (start >= end) {
return true;
}
return isSubPalindrome(s, start + 1, end) ||
isSubPalindrome(s, start, end - 1);
}
private boolean isSubPalindrome(String s, int start, int end) {
while (start < end) {
if (s.charAt(start++) != s.charAt(end--)) {
return false;
}
}
return true;
}
}
Last updated