指定された配列内の最後の回文文字列を検索します
この問題では、配列内の最後の回文文字列を見つける必要があります。先頭から読んでも最後から読んでも、読み取った文字列が同じである場合、その文字列は回文であると言われます。開始文字と終了文字を比較して、特定の文字列が回文であるかどうかを確認できます。回文文字列を見つけるもう 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() 関数では、ループを使用して文字列を走査します。
-
- 現在の文字列が回文の場合は、「lastPal」変数の値を現在の文字列で更新します。
-
-
空間複雑度 - O(1)。定数空間を使用しているためです。
方法 2
- str[i] と str[len - p - 1] の文字を比較し、一致しない文字がある場合は false を返します。
このメソッドでは、最後の配列から始めて配列を反復処理し、最後の回文文字列が見つかったらそれを返します。さらに、 reverse() メソッドを使用して、文字列が回文であるかどうかを確認します。
###アルゴリズム###最後の配列から始めて配列を走査します。
isPalindrome() 関数を使用して、文字列が回文かどうかを確認します。
isPalindrome() 関数で、「str」文字列を「temp」変数に格納します。
- 一時文字列を反転するには、 reverse() メソッドを使用します。
- str と temp が等しい場合、true を返します。それ以外の場合は false を返します。
- i 番目のインデックスの文字列が回文の場合は、その文字列を返します。
-
###例### リーリー ###出力### リーリー
時間計算量 - O(N*K)、配列を反復処理して文字列を反転するため。 - 空間の複雑さ - O(1)。動的空間を使用しないためです。
以上が指定された配列内の最後の回文文字列を検索しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











foreach ループを使用して PHP 配列から重複要素を削除する方法は次のとおりです。配列を走査し、要素がすでに存在し、現在の位置が最初に出現しない場合は、要素を削除します。たとえば、データベース クエリの結果に重複レコードがある場合、このメソッドを使用してそれらを削除し、重複レコードのない結果を取得できます。

PHP の配列キー値の反転メソッドのパフォーマンスを比較すると、array_flip() 関数は、大規模な配列 (100 万要素以上) では for ループよりもパフォーマンスが良く、所要時間が短いことがわかります。キー値を手動で反転する for ループ方式は、比較的長い時間がかかります。

多次元配列のソートは、単一列のソートとネストされたソートに分類できます。単一列のソートでは、array_multisort() 関数を使用して列ごとにソートできますが、ネストされたソートでは、配列を走査してソートするための再帰関数が必要です。具体的な例としては、製品名による並べ替えや、売上数量や価格による化合物の並べ替えなどがあります。

PHP で配列をディープ コピーする方法には、json_decode と json_encode を使用した JSON エンコードとデコードが含まれます。 array_map と clone を使用して、キーと値のディープ コピーを作成します。シリアル化と逆シリアル化には、serialize と unserialize を使用します。

PHP で配列のディープ コピーを実行するためのベスト プラクティスは、 json_decode(json_encode($arr)) を使用して配列を JSON 文字列に変換し、それから配列に戻すことです。 unserialize(serialize($arr)) を使用して配列を文字列にシリアル化し、それを新しい配列に逆シリアル化します。 RecursiveIteratorIterator を使用して、多次元配列を再帰的に走査します。

PHP の array_group_by 関数は、キーまたはクロージャ関数に基づいて配列内の要素をグループ化し、キーがグループ名、値がグループに属する要素の配列である連想配列を返すことができます。

PHP の array_group() 関数を使用すると、指定したキーで配列をグループ化し、重複する要素を見つけることができます。この関数は次の手順で動作します。 key_callback を使用してグループ化キーを指定します。必要に応じて、value_callback を使用してグループ化値を決定します。グループ化された要素をカウントし、重複を特定します。したがって、array_group() 関数は、重複する要素を見つけて処理するのに非常に役立ちます。

PHP 配列のマージおよび重複排除アルゴリズムは、元の配列を小さなブロックに分割して並列処理する並列ソリューションを提供し、メイン プロセスは重複排除するブロックの結果をマージします。アルゴリズムのステップ: 元の配列を均等に割り当てられた小さなブロックに分割します。重複排除のために各ブロックを並行して処理します。ブロックの結果をマージし、再度重複排除します。
