Your cart is currently empty!
leetcode 771题 JavaScript算法思路 珠宝和石头 Jewels and Stones
1. 问题描述:
输入 J (jewels) 代表珠宝, S (stone) 代表石头, 要从石头S里面挑选出J珠宝
示例:
Example 1:
输入: J = "aA", S = "aAAbbbb" 输出: 3
Example 2:
输入: J = "z", S = "ZZ"
输出: 0
其实就是算 S 中, J 所有字符的出现次数. 然后我的思路是….
2. 算法思路:
为了找到 S 中, J 每个字符的数量, 可以将每个 J 字符分割, 然后循环, 循环次数为分割后的数组, 比如example1, 的循环次数就是2, 而example 2的循环次数为1
循环体内, 先用indexOf 判定元素是否存在, 不存在就直接跳过循环,
存在就用正则表达式, 来进行匹配, 匹配到 count+= 匹配到的数量
最后返回 count 就可以了
3. 代码!
光说不练假把式, 这里是代码
/**
* @param {string} J
* @param {string} S
* @return {number}
*/
var numJewelsInStones = function(J, S) {
var tmp=J.split("");
var count=0;
for (var i=0;i<tmp.length;i++){
if(S.indexOf(J[i])==-1){
continue;
}
var Reg=new RegExp(tmp[i],'g');
count+=S.match(Reg).length;
}
return count;
};
提交通过, https://leetcode.com/submissions/detail/246208595/
发表回复