给你一个字符串 s
,最多 可以从中删除一个字符。
请你判断 s
是否能成为回文字符串:如果能,返回 true
;否则,返回 false
。
示例 1:
输入:s = "aba" 输出:true
示例 2:
输入:s = "abca" 输出:true 解释:你可以删除字符 'c' 。
class Solution {
public boolean validPalindrome(String s) {
int a=0;
int b=s.length()-1;
while (a<b){
if(s.charAt(a)!=s.charAt(b)){
return isValid(s,a,b-1)||isValid(s,a+1,b);
}
a++;
b--;
}
return true;
}
private static boolean isValid(String s, int i, int j) {
while (i<j){
if(s.charAt(i)!=s.charAt(j)) return false;
i++;
j--;
}
return true;
}
}