2053年。配列内の K 番目の個別の文字列
簡単
個別の文字列は、配列内に 1 回だけ存在する文字列です。
文字列配列 arr と整数 k を指定すると、arr に存在する k番目 個別の文字列 を返します。個別の文字列が k 個より 少ない場合は、空の文字列 ""を返します。
文字列は配列内の出現順で考慮されることに注意してください。
例 1:
- 入力: arr = ["d","b","c","b","c","a"], k = 2
- 出力: "a"
- 説明:
arr 内の異なる文字列は「d」と「a」のみです。
「d」は 1st に出現するため、1st 番目の個別の文字列になります。
「a」は 2 番目 に出現するため、2 番目 の別個の文字列になります。
k == 2なので、「a」が返されます。
例 2:
- 入力: arr = ["aaa","aa","a"], k = 1
- 出力: "aaa"
- 説明: arr 内のすべての文字列は個別であるため、最初の文字列「aaa」が返されます。
例 3:
- 入力: arr = ["a","b","a"], k = 3
- 出力: ""
- 説明: 唯一の異なる文字列は「b」です。異なる文字列が 3 つ未満であるため、空の文字列 "" を返します。
制約:
ヒント:
文字列を「マッピング」して、一意であるかどうかを確認してください。-
解決策:
この問題を解決するには、次の手順に従います:
頻度マップ (連想配列) を作成して、指定された配列内の各文字列の出現をカウントします。-
配列を反復処理して、個別の文字列 (一度だけ出現する文字列) を出現順に収集します。-
個別の文字列の数が少なくとも k 個であるかどうかを確認します。 「はい」の場合、k 番目の個別の文字列を返します。それ以外の場合は、空の文字列を返します。-
このソリューションを PHP で実装してみましょう:
2053。配列内の K 番目の個別の文字列
<?php
// Test cases
$arr1 = array("d", "b", "c", "b", "c", "a");
$k1 = 2;
echo kthDistinct($arr1, $k1) . "\n"; // Output: "a"
$arr2 = array("aaa", "aa", "a");
$k2 = 1;
echo kthDistinct($arr2, $k2) . "\n"; // Output: "aaa"
$arr3 = array("a", "b", "a");
$k3 = 3;
echo kthDistinct($arr3, $k3) . "\n"; // Output: ""
?>
説明:
- 頻度マップ: まず、各文字列が配列内に出現する回数をカウントする頻度マップを作成します。
["d", "b", "c", "b", "c", "a"] の結果は ["d" => となります。 1、「b」=> 2、「c」=> 2、「a」=> 1]
-
- 個別の文字列を収集: 配列を再度反復処理して、頻度マップ内のカウントが 1 である文字列を収集します。
["d", "b", "c", "b", "c", "a"] の場合、["d", "a"] が得られます。-
- 結果を返す: 少なくとも k 個の個別の文字列があるかどうかを確認し、存在する場合は k 番目の文字列を返し、それ以外の場合は空の文字列を返します。
提供されたコードは、指定された制約内で問題を効率的に処理します。
連絡先リンク
このシリーズが役立つと思われた場合は、GitHub で
リポジトリ にスターを付けるか、お気に入りのソーシャル ネットワークで投稿を共有することを検討してください。あなたのサポートは私にとって大きな意味を持ちます!
このような役立つコンテンツがさらに必要な場合は、お気軽にフォローしてください:
以上が配列内の K 番目の個別の文字列の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。