771. Jewels and Stones

LeetCode medium original: C# #csharp #hash-table #leetcode #medium #string
O texto da tarefa é traduzido do russo para o idioma selecionado. O código permanece sem alterações.

Вам given строки jewels, представляющие типы камней, которые являются драгоценностями, и stones, представляющие камни, которые у вас есть. Каждый символ в stones является типом камня, который у вас есть. Вы хотите узнать, сколько из камней, которые у вас есть, также являются драгоценностями.

Буквы чувствительны к регистру, поэтому "a" считается другим типом камня, чем "A".

Exemplo:

Input: jewels = "aA", stones = "aAAbbbb"

Output: 3

C# solução

correspondente/original
public class Solution {
    public int NumJewelsInStones(string J, string S) {
        int ans = 0;
        foreach (char s in S)
            foreach (char j in J)
                if (j == s) {
                    ans++;
                    break;
                }
        return ans;
    }
}

C++ solução

rascunho automático, revisar antes de enviar
#include <bits/stdc++.h>
using namespace std;

// Auto-generated C++ draft from the C# solution. Review containers, LINQ and helper types before submit.
class Solution {
public:
    public int NumJewelsInStones(string J, string S) {
        int ans = 0;
        foreach (char s in S)
            foreach (char j in J)
                if (j == s) {
                    ans++;
                    break;
                }
        return ans;
    }
}

Java solução

correspondente/original
class Solution {
    public int numJewelsInStones(String J, String S) {
        int ans = 0;
        for (char s : S.toCharArray())
            for (char j : J.toCharArray())
                if (j == s) {
                    ans++;
                    break;
                }
        return ans;
    }
}

JavaScript solução

correspondente/original
class Solution {
    numJewelsInStones(J, S) {
        let ans = 0
        for (const s of S) {
            for (const j of J) {
                if (j === s) {
                    ans++
                    break
                }
            }
        }
        return ans
    }
}

Python solução

correspondente/original
class Solution:
    def numJewelsInStones(self, J: str, S: str) -> int:
        ans = 0
        for s in S:
            for j in J:
                if j == s:
                    ans += 1
                    break
        return ans

Go solução

correspondente/original
func numJewelsInStones(jewels string, stones string) int {
    jewelSet := make(map[rune]bool)
    for _, ch := range jewels {
        jewelSet[ch] = true
    }

    count := 0
    for _, ch := range stones {
        if jewelSet[ch] {
            count++
        }
    }

    return count
}

Algorithm

Создайте множество из строки jewels для быстрой проверки, является ли камень драгоценностью. Это позволит эффективно проверять принадлежность каждого камня к драгоценностям.

Инициализируйте счетчик для подсчета количества камней, которые являются драгоценностями. Пройдите по каждому символу в строке stones и проверьте, содержится ли этот символ в множестве jewels.

Если символ содержится в множестве, увеличьте счетчик. В конце return значение счетчика, которое будет количеством камней, являющихся драгоценностями.

😎

Vacancies for this task

vagas ativas with overlapping task tags are mostradas.

Todas as vagas
Ainda não há vagas ativas.