/** | |||||
* @param {string} ransomNote | |||||
* @param {string} magazine | |||||
* @return {boolean} | |||||
*/ | |||||
var canConstruct = function(ransomNote, magazine) { | |||||
let mag = Array.from(magazine); | |||||
for (const i in ransomNote) { | |||||
let ind = mag.indexOf(ransomNote[i]); | |||||
if (ind > -1) { | |||||
mag.splice(ind, 1); | |||||
} else { | |||||
return false; | |||||
} | |||||
} | |||||
return true; | |||||
}; | |||||
console.log("Expected: true"); | |||||
console.log(`Got: ${canConstruct("aa", "aba")}`); |
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. | |||||
Note: | |||||
You may assume that both strings contain only lowercase letters. | |||||
canConstruct("a", "b") -> false | |||||
canConstruct("aa", "ab") -> false | |||||
canConstruct("aa", "aab") -> true | |||||
#!/bin/bash | |||||
node main.js |