思路
本题和有效字母异位词很相似,可以查看位的博文:https://blog.csdn.net/weixin_45799371/article/details/145261075?spm=1001.2014.3001.5501
首先也通过哈希map来进行存储,由于magazine中的内容是要完全覆盖ransomNote的,所以我们首先要存储的是magazine的每个字母,然后遍历ransomNote,每次匹配上就让值-1,如果不存在或者magazine的值不够用的时候,这个数值就会变成负数,那么就说明无法完全覆盖,return false;
实现
js
var canConstruct = function (ransomNote, magazine) {
const map = new Map();
for (let i = 0; i < magazine.length; i++) {
const item = magazine[i]
map.set(item, (map.get(item) || 0) + 1)
}
for (let i = 0; i < ransomNote.length; i++) {
const item = ransomNote[i];
map.set(item, (map.get(item) || 0) - 1);
if(map.get(item) < 0){
return false;
}
}
return true;
};