ホームページ >Java >&#&チュートリアル >プログラミングにおける回文チェックを最適化するにはどうすればよいでしょうか?

プログラミングにおける回文チェックを最適化するにはどうすればよいでしょうか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-25 22:03:11152ブラウズ

How Can We Optimize Palindrome Checking in Programming?

最適化された回文チェック

プログラミングにおいて、回文とは、前方と後方で同じ内容を読み取る文字列です。回文のチェックは一般的なタスクであるため、効率的な実装が重要です。

提供したコードでは、文字列の両側から中央に向かって文字を比較します。ただし、最初と最後の文字を再帰的に比較する、より直接的なアプローチもあります。

最適化されたコードは次のとおりです。

public static boolean istPalindrom(char[] word) {
    int i1 = 0;
    int i2 = word.length - 1;
    while (i2 > i1) {
        if (word[i1] != word[i2]) {
            return false;
        }
        ++i1;
        --i2;
    }
    return true;
}

例:

入力文字列「andna」について考えます。

  • 最初は、 i1 は 0、i2 は 4 です。
  • 最初のループ反復: word[0] と word[4] を比較します。これらは等しいため、i1 は 1 になり、i2 は 3 になります。
  • 2 番目のループ反復: 2 番目の 'n を比較します。これらは等しいため、i1 は 2 になり、i2 は 2 になります。
  • 3 回目のループ反復: i1 と i2 が等しいため、while ループが終了し、文字列が回文であるため true を返します。

このアプローチにはいくつかの利点があります。

  • より簡潔で、
  • 不必要なループ反復を避けるため、文字を最初から比較するよりも高速です。
  • 新しい配列の作成や既存の配列の変更を避けることができるため、パフォーマンスが向上し、メモリ消費量が削減されます。

以上がプログラミングにおける回文チェックを最適化するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。