この問題では、文字列のペアを選択し、それらの最初の文字を交換する必要があります。その後、新しいペアの総数を計算する必要があります。この問題は、各ペアの最初の文字を交換し、それが配列内に存在するかどうかを確認することで解決できます。
この問題を解決する効率的な方法は、ハッシュ マップ データ構造を使用することです。
問題ステートメント - N 個の文字列を含む配列があります。すべての配列要素から任意の 2 つの文字列を選択し、これら 2 つの文字列の最初の文字を交換できます。配列内に存在しない、生成された新しい文字列ペアの合計数をカウントする必要があります。
入力 – array[] = {「すべき」、「だろう」、「できる」};
出力 – 3
説明 – 新しく生成されたペアは、 Could と wan になります。別のペアは、誰が、そしてそうすべきである可能性があります。 3 番目のペアは san と chould です。
入力 – array[] = {"デモ", "テスト"};
出力 – 1
説明 – 配列内に存在しない、新しく生成されたペアは temo と dest です。
このメソッドでは、2 つのネストされたループを使用して、配列要素のすべてのペアを取得します。その後、2 つのペアの最初の文字を交換します。次に、3 番目のネストされたループを使用して、配列にペアが含まれているかどうかを確認します。
###アルゴリズム###
###例### リーリー ###出力### リーリー
– O(1) 方法 2
このメソッドでは、マップ データ構造を使用して、マップ内のすべての配列値を保存します。その後、マップに新しく生成された文字列が含まれているかどうかを確認できます。そうでない場合は、カウントを 1 つ増やします。 ###アルゴリズム###
2 つのネストされたループを使用して、配列要素のすべてのペアを取得します。
文字列のペアを取得し、「first」変数と「first」変数に格納します。
2 つの文字列の最初の文字が等しくない場合は、それらを交換します。
マップに、新しく生成された文字列が含まれているかどうかを確認します。そうでない場合は、「cnt」の値を 1 増やします。
「cnt」値を返します。
以上が指定された配列内の文字列ペアの最初の文字を交換することによって取得された新しい文字列ペアの数をカウントします。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。