ホームページ >ウェブフロントエンド >jsチュートリアル >[アルゴリズム] 。宝石と石
問題の説明
2つの文字列を指定します:gemタイプを表します。
各キャラクターは、あなたが所有するある種の石を表しています。あなたが持っている石の宝石の数を計算する必要があります。
文字の文字、「A」と「A」はさまざまな種類の石を表します。 jewels
stones
問題の鍵stones
例1
jewels
例2 stones
制約条件
<code>输入:jewels = "aA", stones = "aAAbbbb" 输出:3</code>
1≤、≤50
および<code>输入:jewels = "z", stones = "ZZ" 输出:0</code>には英語の手紙のみが含まれています。
すべてのキャラクターはユニークです。
jewels.length
stones.length
jewels
gemsの総数を保存するために使用されるカウンターを初期化stones
。 含まれている場合、が増加します。
最後の返品。<code class="language-javascript">/** * @param {string} jewels * @param {string} stones * @return {number} */ var numJewelsInStones = function(jewels, stones) { let count = 0; for (let i = 0; i < stones.length; i++) { if (jewels.includes(stones[i])) { count++; } } return count; };</code>
この方法の時間の複雑さはo(m*n)で、mは
文字列の長さ、nはcount
stones
を使用します
includes()
jewels
ステップ:
count
。 count
を作成します。 traversed文字列を使用して、jewels
にあるかどうかを確認します。 includes()
jewels
存在する場合、
最後の返品。
<code class="language-javascript">/** * @param {string} jewels * @param {string} stones * @return {number} */ var numJewelsInStones = function(jewels, stones) { const jewelsSet = new Set(jewels); let count = 0; for (let i = 0; i < stones.length; i++) { if (jewelsSet.has(stones[i])) { count++; } } return count; };</code>
各チェックの複雑さを1つずつ通過することにより、値を確認する方法。
count
メソッドを使用できるようにします。 jewels
私の説明に間違いがある場合や、異なる意見がある場合は、お気軽にコメントを残してください。さまざまな視点から学ぶことに常にオープンです! ? この記事が気に入っていただけましたら、お気軽に LinkedIn までご連絡ください。
以上が[アルゴリズム] 。宝石と石の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。