Leetcode每日一题:771. 宝石与石头(2023.7.24 C++)

        今天的每日一题过于简单,就不再写题解了,看代码就能懂。

目录

771. 宝石与石头

题目描述:

实现代码与解析:

暴力

哈希


771. 宝石与石头

题目描述:

        给你一个字符串 jewels 代表石头中宝石的类型,另有一个字符串 stones 代表你拥有的石头。 stones 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。

字母区分大小写,因此 "a" 和 "A" 是不同类型的石头。

示例 1:

输入:jewels = "aA", stones = "aAAbbbb"
输出:3

示例 2:

输入:jewels = "z", stones = "ZZ"
输出:0

提示:

  • 1 <= jewels.length, stones.length <= 50
  • jewels 和 stones 仅由英文字母组成
  • jewels 中的所有字符都是 唯一的

实现代码与解析:

暴力

class Solution {
public:
    int numJewelsInStones(string jewels, string stones) {
        int res = 0;
        for (int i = 0; i < stones.size(); i++)
        {
            for (int j = 0; j < jewels.size(); j++)
            {
                if (stones[i] == jewels[j]) res++;
            }
        }
        return res;
    }
};

哈希

class Solution {
public:
    int numJewelsInStones(string jewels, string stones) {
        unordered_map m;
        int res = 0;
        
        for (int i = 0; i < stones.size(); i++) m[stones[i]]++;

        for (int i = 0; i < jewels.size(); i++)
            res += m[jewels[i]];
        return res;
    }
};

你可能感兴趣的:(Leetcode,leetcode,c++,哈希算法,算法)