bool canConstruct(string ransomNote, string magazine) {
sort(ransomNote.begin(),ransomNote.end());
sort(magazine.begin(),magazine.end());
int i=0,j=0;
while(j<magazine.size()){
if(ransomNote[i]==magazine[j]) {
i++;
j++;
}else {
j++;
}
}
return i==ransomNote.size();
}
用哈希表
bool canConstruct(string ransomNote, string magazine) {
unordered_map<char,int> m;
for(auto a:magazine) m[a]++;
for(auto a:ransomNote)
if(--m[a]<0)
return false;
return true;
}
bool canConstruct(string ransomNote, string magazine) {
unordered_map<char,int> m;
for(auto a:magazine) m[a]++;
for(auto a:ransomNote)
if(m[a]--<1)
return false;
return true;
}