Leetcode(Javaの)-125。回文配列確認

文字列を考えると、それは回文文字列であることを確認し、唯一のアルファベットと数字を検討し、大文字小文字を無視することができます。

説明:この問題では、我々は有効な回文配列として空の文字列を定義します。

例1:

入力:「男、計画、運河:パナマ」
出力:真の
例2:

入力:「カーレース」
出力:偽

思考:これは回文のタイトルの研究である、と文字列が回文であるかどうか、である最も単純な形態です。

この問題に対処するために、我々は、デュアルヘッドとテールポインタを使用することができます

  • 2つのポインタが異なる要素がある場合、プロセスは直接、falseを返します
  • 二つのポインタと同じ要素ならば、我々はまた、頭と尾のポインタのループを更新します。頭と尾のポインタ会う日まで。
class Solution {
    public boolean isPalindrome(String s) {
        int i=0;int j=s.length()-1;
        while(i<j)
        {
            if(!Character.isLetterOrDigit(s.charAt(i))){
                i++;
                continue;
            }
            if(!Character.isLetterOrDigit(s.charAt(j))){
                j--;
                continue;
            }
            if(Character.toLowerCase(s.charAt(i))!=Character.toLowerCase(s.charAt(j)))
                return false;

            i++;j--;
        }
        return true;
    }
}

 

公開された142元の記事 ウォン称賛31 ビュー20000 +

おすすめ

転載: blog.csdn.net/qq_38905818/article/details/104072139