首页 > 代码库 > LeetCode 383. Ransom Note

LeetCode 383. 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.

Note:
You may assume that both strings contain only lowercase letters.

canConstruct("a", "b") -> falsecanConstruct("aa", "ab") -> falsecanConstruct("aa", "aab") -> true

 

Subscribe to see which companies asked this question

题目,如果前面的字符串中的字母后面一个字符中都有,而且个数不小于前面一个字符串则返回true,否则返回false

 

class Solution {public:    bool canConstruct(string ransomNote, string magazine) {        map<char, int> map;        for (auto &e : ransomNote)        {            ++map[e];        }        for (auto &e : magazine)        {            if (map.find(e) != map.end())            {                if (--map[e] == 0)                {                    map.erase(e);                }            }        }        return !map.size();    }};

 

LeetCode 383. Ransom Note