ホームページ >バックエンド開発 >PHPチュートリアル >。単語のサブセット
916。単語のサブセット
難易度: 中
トピック: 配列、ハッシュ テーブル、文字列
2 つの文字列配列 Word1 と Words2 が与えられています。
文字列 b 内のすべての文字が多重度を含めて a に出現する場合、文字列 b は文字列 a のサブセットです。
words2 のすべての文字列 b について、b が a のサブセットである場合、words1 の文字列 a は ユニバーサルです。
word1 内のすべての ユニバーサル 文字列の配列を 返します。回答は任意の順序で返すことができます。
例 1:
例 2:
制約:
解決策:
words1 内の「普遍的」な単語を識別する必要があります。つまり、words2 の各文字列は、words1 の単語のサブセットであることを意味します。
単語内の文字の頻度を数える 2:
words1 の各単語を確認します:
普遍的な言葉を返します:
このソリューションを PHP で実装してみましょう: 916。単語のサブセット
<?php /** * @param String[] $words1 * @param String[] $words2 * @return String[] */ function wordSubsets($words1, $words2) { ... ... ... /** * go to ./solution.php */ } // Example usage: $words1 = ["amazon", "apple", "facebook", "google", "leetcode"]; $words2 = ["e", "o"]; print_r(wordSubsets($words1, $words2)); // Output: ["facebook", "google", "leetcode"] $words2 = ["l", "e"]; print_r(wordSubsets($words1, $words2)); // Output: ["apple", "google", "leetcode"] ?>
words2 の頻度マップの構築: Words2 内の各単語をループし、各文字の頻度を計算します。 Words2 のすべての単語にわたって、各文字に必要な最大頻度を追跡します。
単語 1 の単語のチェック: 単語 1 の各単語について、各文字の頻度を計算し、単語 2 の必要な頻度と比較します。単語がすべての文字の要件を満たしている場合、その単語は普遍的であるとみなされます。
結果: すべての汎用単語を結果配列に格納し、最後に返します。
このアプローチにより、各単語を効率的にチェックし、問題の制約を確実に満たすことができます。
連絡先リンク
このシリーズが役立つと思われた場合は、GitHub で リポジトリ にスターを付けるか、お気に入りのソーシャル ネットワークで投稿を共有することを検討してください。あなたのサポートは私にとって大きな意味を持ちます!
このような役立つコンテンツがさらに必要な場合は、お気軽にフォローしてください:
以上が。単語のサブセットの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。