题目:
思路:
把题目抽象一下,就会发现本题考察的是子集问题;
即一个字符串是否是另一个字符串的“子串”;
把magazine字符信息存储起来,在遍历ransomNote时进行查找,不符合条件就返回false;
存储查找,哈希表!
根据题目要求,哈希表使用map,定义为字母与字母对应的出现次数;
查找时每查找一次自减一次;
代码:
class Solution { public: bool canConstruct(string r, string m) { int s1=r.size(),s2=m.size(); if(s1>s2) return false; unordered_map<int,int> has; for(auto i:m) has[i]++; for(auto i:r){ if(has.count(i)&&has[i]!=0) has[i]--; else return false; } return true; } };