LeetCode771 宝石与石头

LeetCode771 宝石与石头

  • 题目
  • 解题

题目

LeetCode771 宝石与石头_第1张图片

解题

在这里插入图片描述

// javascript
var numJewelsInStones = function(jewels, stones) {
    const jewelSet = new Set(Array.from(jewels));
    let cnt = 0;
    for (const stone of stones) {
        if (jewelSet.has(stone) === true) {
            cnt++;
        }
    }
    return cnt;
};

高级写法:使用 reduce 函数,reduce 是 Array 原型对象的一个方法,如果要使用需要保证操作的是 Array(stones.split('') 先将 stones 字符串 split 得到数组,再使用 reduce)。prev 是在操作 val 前保存下来的结果,val 是当前操作的数组元素值,reduce 传入的参数除了函数外还有 initialValue,传入初始值 0。
LeetCode771 宝石与石头_第2张图片
LeetCode771 宝石与石头_第3张图片
使用方法参考:Array.prototype.reduce()。

// javascript
var numJewelsInStones = function(jewels, stones) {
    const jewelsSet = new Set(jewels.split(''));
    return stones.split('').reduce((prev, val) => {
        return prev + jewelsSet.has(val);
    }, 0);
};

LeetCode771 宝石与石头_第4张图片

你可能感兴趣的:(刷题笔记,哈希表,字符串)