LeetCode 242:有效的字母异位词

给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。

注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。


建立一个哈希表,索引为字母,值为字母出现的次数。

class Solution {
public:
    bool isAnagram(const string& s, const string& t) {
        if (s.length() != t.length()) {
            return false;
        }
        
        vector<size_t> letter_times(26);
        for (const auto& letter : s) {
            size_t index = letter - 'a';
            letter_times[index]++;
        }
        
        for (const auto& letter : t) {
            size_t index = letter - 'a';
            if (letter_times[index] <= 0) {
                return false;
            } else {
                letter_times[index]--;
            }
        }
        
        return true;
    }
};

时间复杂度为O(n),空间复杂度为O(1)。

上一篇:[C语言小程序] - 字母大小写的转换,遇到数字不提示任何信息


下一篇:TypeScript 中命名空间与模块的理解?区别?