哈希表——有效的字母异位词

暴力的解法,两层for循环,同时还要记录字符是否重复出现,很明显时间复杂度是 O(n^2)

利用哈希表解法

class Solution {
public:
    bool isAnagram(string s, string t) {
        // 定义hash数组
        int num = 26;
        int hash[num];
        for(int i = 0; i < num; i++)
        {
            hash[i] = 0;
        }

        for(int j = 0; j < s.size(); j++)
        {
            hash[s[j] - 'a']++;
        }

        for(int k = 0; k < t.size(); k++)
        {
            hash[t[k] - 'a']--;
        }

        for(int m = 0; m < num; m++)
        {
            if(hash[m] != 0)
            {
                return false;
            }
        }
        return true;

    }
};
class Solution {
public:
    bool isAnagram(string s, string t) {
        // 定义hash数组
        int hash[26] = {0};
        
        for(int j = 0; j < s.size(); j++)
        {
            hash[s[j] - 'a']++;
        }

        for(int k = 0; k < t.size(); k++)
        {
            hash[t[k] - 'a']--;
        }

        for(int m = 0; m < 26; m++)
        {
            if(hash[m] != 0)
            {
                return false;
            }
        }
        return true;

    }
};
posted @ 2022-10-27 11:00  香花草的味道  阅读(32)  评论(0)    收藏  举报