771. 宝石与石头

138 阅读1分钟

题目

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

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

给你一个字符串 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 中的所有字符都是 唯一的

解析

利用Set不存在重复元素的特性,把jewels中的每一个字符添加到jewelSet, 声明count计数器变量,遍历stones发现如果jewelSet存在stone, 则计数器count加1, 最终返回count即可

参考代码

/**
 * @param {string} jewels
 * @param {string} stones
 * @return {number}
 */
var numJewelsInStones = function(jewels, stones) {
    const jewelSet = new Set(jewels);
    let count = 0;
    for (let stone of stones) {
        if (jewelSet.has(stone)) {
            count++;
        }
    }
    return count;

};

原题链接

771. 宝石与石头