文章

有效的字母异位词

有效的字母异位词

leetcode.242

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

示例 1: 输入: s = "anagram", t = "nagaram" 输出: true

示例 2: 输入: s = "rat", t = "car" 输出: false

说明: 你可以假设字符串只包含小写字母。

这个题思路与哈希一致,但需要注意的是,要理解数组本身就可以作为哈希表的特性,对于这种key在一定范围内的情况,适合用数组作为哈希表,实质上就是自己写哈希函数。

在这个题中,哈希函数就是i-'a'​,总大小为26。

#include <string>
using namespace std;
class Solution {
public:
    bool isAnagram(string s, string t) {
        int ab[26] = {};
        for (char i : s) {
            ab[i-'a']++;
        }
        for (char i : t) {
            ab[i-'a']--;
        }
        for (int i : ab) {
            if (i) {
                return false;
            }
        }
        return true;
    }
};

相关:哈希表

License:  CC BY 4.0