Description du problème
Donnez deux chaînes:
représenter le type de gemme, représente les pierres que vous possédez. jewels
Chaque personnage représente une sorte de pierre que vous possédez. Vous devez calculer le nombre de gemmes dans les pierres que vous avez. stones
stones
lettres de lettres, donc "A" et "A" représentent différents types de pierres.
La clé du problème
Trouvez le caractère dans la chaîne dans la chaîne
et renvoyez le nombre total de ces caractères.
jewels
Exemple 1 stones
Exemple 2
<code>输入:jewels = "aA", stones = "aAAbbbb" 输出:3</code>
Les conditions de contrainte
<code>输入:jewels = "z", stones = "ZZ" 输出:0</code>
≤ 50 et
ne comprennent que des lettres anglaises.jewels.length
stones.length
jewels
stones
jewels
Initialiser le compteur Traversed String et utilisez la méthode pour vérifier si chaque caractère est dans la chaîne .
<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>
.
count
stones
. Parce que les méthodes ont traversé chaque caractère sur la chaîne includes()
. Lorsque l'échelle d'entrée augmente, cette méthode est inefficace. Nous devons optimiser le plan pour réduire la complexité du temps. jewels
count
count
stones
Utiliser chaînes pour créer un jewels
. includes()
Utilisez des tables de hachage pour trouver une recherche plus rapide. jewels
pour vérifier si chaque caractère est dans .
s'il existe, il augmentera<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>
Dernier retour .
count
jewels
la chaîne à travers des caractères un par un. Set
Set
et HACH Tables à l'intérieur de la structure des données, permettant l'utilisation de la méthode stones
Si j'ai des erreurs ou si vous avez des vues différentes, veuillez laisser un message à tout moment. Je suis toujours heureux d'apprendre de différents angles! ? Si vous aimez cet article, veuillez me contacter sur LinkedIn à tout moment.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!