洗練された回文チェッカー
このデモでは、指定された文字列が回文であるかどうかをチェックする複雑さを掘り下げます。回文は、前方と後方の両方で同じように読まれるという注目すべき特性を示します。一般的なアプローチの 1 つは、文字列を char 配列に変換し、配列の両端にある各文字を比較することです。
しかし、より効率的で簡潔な解決策があります。
public static boolean isPalindrome(char[] word) { int i1 = 0; int i2 = word.length - 1; while (i2 > i1) { if (word[i1] != word[i2]) { return false; } ++i1; --i2; } return true; }
これは拡張されました。このメソッドには、単語の先頭と末尾から繰り返し、途中で各文字を比較する while ループが組み込まれています。一致しない文字のペアがある場合、その文字列は回文ではありません。単語の途中で出会うまで i1 をインクリメントし、i2 をデクリメントすることで、効率的に回文をチェックできます。
例:
入力文字列「andna」を考えます。 :
word[0] (a) と word[4] (a) を比較します: 等しい
word[1] (n) と word[3] (n) を比較します。 Equal
この最適化されたアルゴリズムは、指定された文字列が回文。
以上が文字列が回文であるかどうかを効率的に確認するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。