Skip to content

Latest commit

 

History

History

383. Ransom Note

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

Given two stings ransomNote and magazine, return true if ransomNote can be constructed from magazine and false otherwise.

Each letter in magazine can only be used once in ransomNote.

 

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:

  • 1 <= ransomNote.length, magazine.length <= 105
  • ransomNote and magazine consist of lowercase English letters.

Related Topics:
Hash Table, String, Counting

Similar Questions:

Solution 1.

// OJ: https://leetcode.com/problems/ransom-note/
// Author: www.github.com/faizanurrahman
// Time: O()
// Space: O()
/**
 * @param {string} ransomNote
 * @param {string} magazine
 * @return {boolean}
 */
var canConstruct = function(ransomNote, magazine) {
    var map1 = {};
    for(var i = 0; i < ransomNote.length; i++){
        if(map1[ransomNote[i]] === undefined)
            map1[ransomNote[i]] = 1
        else 
            map1[ransomNote[i]] += 1
    }
    var map2 = {};
    for(var i = 0; i < magazine.length; i++){
        if(map2[magazine[i]] === undefined)
            map2[magazine[i]] = 1
        else 
            map2[magazine[i]] += 1
    }
    for(k in map1){
        if(map2[k] === undefined) return false;
        if(map2[k] < map1[k]) return false;
    }
    return true;
};