linkk
用数组记录magazine中每个字母出现的次数,再去比对ransomNote中的每个字母,每次让该字母的出现次数减一,表示可用的字母次数。如果碰到某字母的可用次数
<
=
0
<=0
<=0即为不合法情况
class Solution {
public:
bool canConstruct(string ransomNote, string magazine) {
int mp[27];
memset(mp,0,sizeof mp);
bool flag=true;
for(int i=0;magazine[i];i++) mp[magazine[i]-'a']++;
for(int i=0;ransomNote[i];i++){
if(mp[ransomNote[i]-'a']<=0){
return false;
}
mp[ransomNote[i]-'a']--;
}
return true;
}
};