Valid Palindrome II
Given a non-empty string s, you may delete at most one character. Judge whether you can make it a palindrome.
时间复杂度:O(n^2)
空间复杂度:O(1)
没找到其他的方法,基本上都是这样做的
public boolean validPalindrome(String s) {
int length = s.length();
if(length <= 1)
return true;
int left = 0;
int right = length - 1;
char[] charArray = s.toCharArray();
while(left < right){
if(charArray[left] == charArray[right]){
left++;
right--;
}else{
return isPalindrome(s,left + 1,right) || isPalindrome(s,left,right - 1);
}
}
return true;
}
public boolean isPalindrome(String s,int left,int right){
char[] charArray = s.toCharArray();
int length = s.length();
if(length <= 1)
return true;
while(left < right){
if(charArray[left] != charArray[right]){
return false;
}
left++;
right--;
}
return true;
}