https://leetcode.com/problems/valid-anagram/

1. Use hashmap:

  1. //48 ms 7.2 MB
  2. class Solution {
  3. public:
  4. bool isAnagram(string s, string t) {
  5. if(s.length() != t.length())
  6. return false;
  7. map<char, int> s_letters;
  8. for(int i = 0; i<s.length(); i++){
  9. s_letters[s[i]] += 1;
  10. }
  11. for(int i = 0; i<s.length(); i++){
  12. s_letters[t[i]] -= 1;
  13. }
  14. for(map<char, int>::iterator it = s_letters.begin();
  15. it != s_letters.end(); it++){
  16. if(it->second!=0){
  17. return false;
  18. }
  19. }
  20. return true;
  21. }
  22. };

2. Use STL sort():

  1. //72 ms 7.2 MB
  2. class Solution {
  3. public:
  4. bool isAnagram(string s, string t) {
  5. if(s.size() != t.size()) return false;
  6. sort(s.begin(), s.end());
  7. sort(t.begin(), t.end());
  8. return s==t;
  9. }
  10. };