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

暴力的解法,两层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 @   香花草的味道  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示