アルゴリズム学習の道:返信文字列の検証II
850 ワード
空白以外の文字列
例:
この問題は主に二重ポインタを用いて,先頭から等しいか否かを判断し,等しくない文字に遭遇した場合は左または右から1文字を除去し,残りの文字列が回文であるか否かを再判断することである.
s
が与えられ、最大1文字が削除されます.返信文字列にできるかどうかを判断します.例:
: "abca"
: True
: c 。
この問題は主に二重ポインタを用いて,先頭から等しいか否かを判断し,等しくない文字に遭遇した場合は左または右から1文字を除去し,残りの文字列が回文であるか否かを再判断することである.
public static boolean validPalindrome(String s) {
int i = 0,j = s.length()-1;
while(i < j){
if(s.charAt(i) == s.charAt(j)){
i++;
j--;
}else{
// , , ; ,
if(del == 0){
del++;
return validPalindrome(s.substring(i,j)) || validPalindrome(s.substring(i+1,j+1));
}
return false;
}
}
return true;
}