link:
leetcode
解題思路:
- 逐一讀取
magazine
中的字元,並使用letters
對每個英文字母做 count - 逐一讀取
ransomNote
中的字元,並從letters
取出該英文字母 - 若再取出英文字母時,現有的該英文字母字數為 0 則代表無法拼出
ransomNote
- 逐一讀取
程式碼:
/**
* @param {string} ransomNote
* @param {string} magazine
* @return {boolean}
*/
const canConstruct = function(ransomNote, magazine) {
let letters = Array(26).fill(0);
for(var i=0; i<magazine.length; i++) {
letters[magazine[i].charCodeAt(0)-97]++;
}
for(var i=0; i<ransomNote.length; i++) {
if(letters[ransomNote[i].charCodeAt(0)-97]===0) {
return false;
}
letters[ransomNote[i].charCodeAt(0)-97]--;
}
return true;
};
- 結果: