Appearance
383. 赎金信
原题链接:LeetCode 383. 赎金信
题目描述
给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。
如果可以,返回 true ;否则返回 false 。
magazine 中的每个字符只能在 ransomNote 中使用一次。
示例 1:
**输入:**ransomNote = "a", magazine = "b" **输出:**false
示例 2:
**输入:**ransomNote = "aa", magazine = "ab" **输出:**false
示例 3:
**输入:**ransomNote = "aa", magazine = "aab" **输出:**true
提示:
1 <= ransomNote.length, magazine.length <= 105
- `ransomNote` 和 `magazine` 由小写英文字母组成
难度: Easy
题解代码
javascript
/**
* @param {string} ransomNote
* @param {string} magazine
* @return {boolean}
*/
var canConstruct = function(ransomNote, magazine) {
const hashA = {}
const hashB = {}
while(magazine.length) {
const s = magazine.slice(0, 1)
hashB[s] = (hashB[s] || 0) + 1
magazine = magazine.slice(1)
}
while(ransomNote.length) {
const s = ransomNote.slice(0, 1)
if (!(s in hashB)) return false
hashA[s] = (hashA[s] || 0) + 1
if (hashA[s] > hashB[s]) return false
ransomNote = ransomNote.slice(1)
}
return true
};