ホームページ >バックエンド開発 >C++ >指定された配列内の最後の回文文字列を検索します

指定された配列内の最後の回文文字列を検索します

WBOY
WBOY転載
2023-09-15 15:05:02610ブラウズ

指定された配列内の最後の回文文字列を検索します

この問題では、配列内の最後の回文文字列を見つける必要があります。先頭から読んでも最後から読んでも、読み取った文字列が同じである場合、その文字列は回文であると言われます。開始文字と終了文字を比較して、特定の文字列が回文であるかどうかを確認できます。回文文字列を見つけるもう 1 つの方法は、文字列を反転して元の文字列と比較することです。

問題文 - さまざまな文字列を含む長さ N の配列が与えられています。指定された配列内の最後の回文文字列を見つける必要があります。

例例

入力– arr[] = {"werwr", "rwe", "nayan", "tut", "rte"};

出力 – 'tut'

説明– 指定された配列の最後の回文文字列は「tut」です。

入力– arr[] = {"werwr", "rwe", "nayan", "acd", "sdr"};

出力-「ナヤン」

説明 – 「nayan」は、指定された配列内の最後の回文文字列です。

入力– arr[] = {"werwr", "rwe", "jh", "er", "rte"};

######出力###-""###

説明 – 配列には回文文字列が含まれていないため、空の文字列が出力されます。

方法1 このメソッドでは、配列を最初から反復処理し、最後の回文文字列を変数に保存します。さらに、文字列の開始文字と終了文字を比較して、文字列が回文であるかどうかを確認します。

###アルゴリズム###

変数 'lastPal' を定義して、最後の回文文字列を保存します。

    配列を走査します。
  • isPalindrome() 関数を使用して、配列内の p 番目のインデックスにある文字列が回文であるかどうかを確認します。
  • isPalindrome() 関数では、ループを使用して文字列を走査します。

    • str[i] と str[len - p - 1] の文字を比較し、一致しない文字がある場合は false を返します。
    • ループのすべての反復が完了した後、true を返します。
    • 現在の文字列が回文の場合は、「lastPal」変数の値を現在の文字列で更新します。

    「lastPal」を返します。
  • ###例### リーリー ###出力### リーリー
  • 時間計算量 - O(N*K)。配列をループして各文字列が回文であるかどうかを確認するためです。
  • 空間複雑度 - O(1)。定数空間を使用しているためです。

  • 方法 2

このメソッドでは、最後の配列から始めて配列を反復処理し、最後の回文文字列が見つかったらそれを返します。さらに、 reverse() メソッドを使用して、文字列が回文であるかどうかを確認します。

###アルゴリズム###

最後の配列から始めて配列を走査します。

isPalindrome() 関数を使用して、文字列が回文かどうかを確認します。

isPalindrome() 関数で、「str」文字列を「temp」変数に格納します。
  • 一時文字列を反転するには、 reverse() メソッドを使用します。
  • str と temp が等しい場合、true を返します。それ以外の場合は false を返します。
    • i 番目のインデックスの文字列が回文の場合は、その文字列を返します。
    • ###例### リーリー ###出力### リーリー

      時間計算量 - O(N*K)、配列を反復処理して文字列を反転するため。
    • 空間の複雑さ - O(1)。動的空間を使用しないためです。

      ここでは、指定された配列内の最後の回文文字列を検索する 2 つの方法を学びました。両方のメソッドの時間と空間の複雑さはほぼ同じですが、2 番目のコードは最初のコードよりも読みやすく、優れています。
    また、プログラマは、指定された配列内で最後から 2 番目の文字列を見つけて、さらに練習することもできます。

以上が指定された配列内の最後の回文文字列を検索しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。