Skip to content

Latest commit

 

History

History
37 lines (34 loc) · 1.01 KB

File metadata and controls

37 lines (34 loc) · 1.01 KB

description

image

self_solution

class Solution {
public:
    bool isAnagram(string s, string t) {
        int n = s.size();
        int m = t.size();
        if(n != m) {
            return false;
        }

        std::vector<int> chars(26);
        for(const auto& c : s) {
            chars[c - 'a']++;
        }
        for(const auto& c : t) {
            if(chars[c - 'a']-- <= 0) {
                return false;
            }
        }

        return true;
    }
};
  1. 比较一下两个字符串中的字符数是否相同,不相同则直接退出。(字符数相同,则可保证只要t字符串被满足了,s也就没有剩余)
  2. 建立一个数组,存储s中每一个字符出现的频次。
  3. 遍历t,对于t中每一个字符,查看是否有可用的,没有则return false time : 2O(n) space : O(1)

other_solution

直接sort后,看一下是否相同。 time :O(nlogN) space: O(nLogN)