bool isAnagram(string s, string t) {
//如果长度不等,必定false
if(s.size()!=t.size()) return false;
//用map统计其中一个字符串,<字母,出现次数>
map<char,int> hashmap;
for(char c:s)
hashmap[c] = (hashmap.find(c)!=hashmap.end()) ? hashmap[c]+1 : 1;
//用另一个字符串的字母来匹配map
for(char c:t){
//如果出现了s种没有出现过的字母,则false
if(hashmap.find(c)==hashmap.end()) return false;
--hashmap[c];
//如果某个字母比s的多,则false
if(hashmap[c]<0) return false;
}
//遍历map,如果有出现次数不为0的,则false
for(auto it = hashmap.begin();it!=hashmap.end();++it)
if(it->second != 0)
return false;
return true;
}
242. 有效的字母异位词/C++
最新推荐文章于 2022-09-12 01:32:52 发布