题解
输入全是小写英文字母,因此用数组当哈希表,然后纵向对比时若magazine的记录>ransomNote的记录,则return false。正确遍历完则return true
bool canConstruct(string ransomNote, string magazine) {
int records[2][26]={{0}};
for(char s:ransomNote){
records[0][s-'a']++;
}
for(char s:magazine){
records[1][s-'a']++;
}
int j=0;
for(int i=0;i<26;i++){
if(records[j][i]!=0) {
if(records[j][i]>records[j+1][i]){
return false;
}
}
}
return true;
}
Comments NOTHING