
Given a non-empty string s, you may delete at most one character. Judge whether you can make it a palindrome.
Example 1: Input: "aba" Output: True Example 2: Input: "abca" Output: True Explanation: You could delete the character 'c'. Note: The string will only contain lowercase characters a-z. The maximum length of the string is 50000.
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/valid-palindrome-ii 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
class Solution {
public boolean validPalindrome(String s) {
for(int i = 0, j = s.length()-1; i < j ; i++, j--){
if(s.charAt(i) != s.charAt(j)){
//分两种情况,一是右边减一,二是左边加一
return isPalindrome(s,i,j-1) || isPalindrome(s, i+1, j);
}
}
return true;
}
public boolean isPalindrome(String s, int i, int j) {
while (i < j) {
if (s.charAt(i++) != s.charAt(j--)) {
return false;
}
}
return true;
}
}