/** * @param {string}ransomNote * @param {string}magazine * @return {boolean} */ var canConstruct = function (ransomNote, magazine) { if (ransomNote.length > magazine.length) returnfalse; let obj = {}; for (let i = 0; i < magazine.length; i++) { let z = magazine[i]; if (obj[z]) { obj[z] += 1; } else { obj[z] = 1; } } for (let i = 0; i < ransomNote.length; i++) { let z = ransomNote[i]; if (obj[z] > 0) { obj[z] -= 1; } else { returnfalse; } } returntrue; };
用数组替换 hashmap:
1 2 3 4 5 6 7 8 9 10 11 12 13
var canConstruct = function (ransomNote, magazine) { let arr = newArray(26).fill(0); for (let i = 0; i < magazine.length; i++) { arr[magazine.codePointAt(i) - "a".codePointAt(0)]++; } for (let i = 0; i < ransomNote.length; i++) { arr[ransomNote.codePointAt(i) - "a".codePointAt(0)]--; if (arr[ransomNote.codePointAt(i) - "a".codePointAt(0)] < 0) { returnfalse; } } returntrue; };