@@ -0,0 +1,20 @@ | |||
/** | |||
* @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")}`); |
@@ -0,0 +1,11 @@ | |||
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 | |||
@@ -0,0 +1,3 @@ | |||
#!/bin/bash | |||
node main.js |