class Solution {
public boolean validPalindrome(String s) {
//首先遍历字符串,获取到不能回文的地方
int left = 0;
int right = s.length() - 1;
while(left < s.length()/2){
if(s.charAt(left) != s.charAt(right)){
break;
}
left++;
right--;
}
//分类讨论,如果现在已经回文了,跳过左指针现在在的位置继续比较回文,跳过右指针现在所在的位置继续比较回文
return left == s.length()/2 || Palindrome(s,left,right - 1) || Palindrome(s,left + 1,right);
}
//继续比较的函数
public boolean Palindrome(String s,int start ,int end){
//接着循环比较,直到有一个不同了,或者全部比较完毕退出
while(start < end){
if(s.charAt(start) != s.charAt(end)){
break;
}
start++;
end--;
}
return start >= end;
}
}
最多删除一个字符变成回文java实现
最新推荐文章于 2022-10-10 21:51:19 发布