ホームページ > Java > &#&チュートリアル > Leetcode ―トップインタビュー―。有効な回文

Leetcode ―トップインタビュー―。有効な回文

DDD
リリース: 2024-11-14 13:00:02
オリジナル
514 人が閲覧しました

Leetcode — Top Interview –. Valid Palindrome

次のような簡単な問題です:

すべての大文字を小文字に変換し、英数字以外の文字をすべて削除した後、前後から同じように読める場合、そのフレーズは回文です。英数字には文字と数字が含まれます。

文字列 s を指定すると、それが回文の場合は true を返し、それ以外の場合は false を返します。

例 1:

入力: s = "人間、計画、運河: パナマ"
出力: true
説明: 「amanaplanacalpanama」は回文です。

例 2:

入力: s = "車のレース"
出力: false
説明: 「raceacar」は回文ではありません。

例 3:

入力: s = " "
出力: true
説明: s は、英数字以外の文字を削除した後の空の文字列 "" です。
空の文字列は前から見ても後ろから読んでも同じなので、回文です。

制約:

1

は、印刷可能な ASCII 文字のみで構成されます。

回文に従って、基本的にアルファ以外をすべて削除してから、大文字と小文字を区別するメソッドを呼び出して、比較するために復帰します。

メソッドと少しの正規表現を使用すると、これを 3 行で解決できます。

class Solution {
    public boolean isPalindrome(String s) {
        final String reduced = s.replaceAll("[^A-Za-z0-9]", "").toLowerCase();
        final String inverted = new StringBuilder(reduced).reverse().toString();
        return reduced.equals(inverted);
    }
}
ログイン後にコピー

実行時間: 15 ミリ秒、有効な回文に対する Java オンライン送信の 22.51% よりも高速です。

メモリ使用量: 44.8 MB、有効な回文の Java オンライン送信の 34.15% 未満。

シンプルで簡単な質問としてはこれで十分ですが、パフォーマンスを向上させるには、各文字を反復してチェックし、必要に応じて削除して適応させることができます。この場合は、leetcode でサクシャムの回答をチェックアウトしてください (詳細を説明したい場合は、以下にコメントしてください)。

それだけです!他に議論したいことがあれば、お気軽にコメントしてください。何か見逃した場合はお知らせください。適宜更新します。

次の投稿まで! :)

以上がLeetcode ―トップインタビュー―。有効な回文の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート