https://leetcode.com/problems/valid-anagram/description/
Solution 1. Use array as map.
bool isAnagram(string s, string t) {
if(s.size()!=t.size()) return false;
int cnt[26] = {0};
for(int i=0; i<s.size();i++){
// do the counting in one loop
cnt[s[i]-'a']++;
cnt[t[i]-'a']--;
}
for(int i=0;i<26;i++){
if(cnt[i] != 0) return false;
}
return true;
}
Solution 2. Compare sorted string.
bool isAnagram(string s, string t) {
sort(s.begin(), s.end());
sort(t.begin(), t.end());
return(s==t);
}
No comments:
Post a Comment