Ransom Note
Description
Given an arbitrary ransom note string and another string containing letters from all the magazines, write a function that will return true if the ransom note can be constructed from the magazines ; otherwise, it will return false.
Each letter in the magazine string can only be used once in your ransom note.
Example 1:
Input: ransomNote = "a", magazine = "b" Output: false
Example 2:
Input: ransomNote = "aa", magazine = "ab" Output: false
Example 3:
Input: ransomNote = "aa", magazine = "aab" Output: true
Constraints:
- You may assume that both strings contain only lowercase letters.
Solution(javascript)
/**
* @param {string} ransomNote
* @param {string} magazine
* @return {boolean}
*/
var canConstruct = function(ransomNote, magazine) {
const map = {}
for(let c of magazine) {
map[c] = (map[c] || 0) + 1
}
const map2 = {}
for(let c of ransomNote) {
map2[c] = (map2[c] || 0) + 1
if(map2[c] > (map[c] || 0)) {
return false
}
}
return true
};