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.
class Solution {
public:
bool canConstruct(string ransomNote, string magazine) {
unordered_map<char,int> map(26);
for(int i=0;i<magazine.size();i++)
++map[magazine[i]];
for(int i = 0;i < ransomNote.size();i++)
{
if(--map[ransomNote[i]] < 0)
return false;
}
return true;
}
};