思路分析:
(1)定义一个char型到int型的map映射。
(2)记录magazine中的各个字符出现的次数。
(3)遍历ransomNote数组,判断其字符在magazine中有没有,并且每次用完要-1.如果碰到没有当前字符的话,就直接返回false。程序末尾返回true;
代码实现:
class Solution {
public:
bool canConstruct(string ransomNote, string magazine) {
int len1=ransomNote.size(),len2=magazine.size();
map<char,int>a;
for(int i=0;i<len2;i++)
a[magazine[i]]++;
for(int i=0;i<len1;i++)
{
if(a[ransomNote[i]]>0)
{
a[ransomNote[i]]--;
}
else return false;
}
return true;
}
};