Ransom Note - Codeprg

Breaking

programing News Travel Computer Engineering Science Blogging Earning

Tuesday, 11 August 2020

Ransom Note

 

Ransom Note

Ransom Note

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.

class Solution {
public:
    bool canConstruct(string ransomNote, string magazine) {
        unordered_map<char,int> mp;
        for(int i=0;i<magazine.size();++i)
            mp[magazine[i]]++;
        for(char ch: ransomNote)
            mp[ch]-=1;
        for(auto p: mp)
            if(p.second<0)
                return false;
        return true;
       
    }
};