文章

有效的字母异位词

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

· 更新于 2026/3/13 · 1 分钟阅读

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;
    }
};

相关:哈希表

‍

‍

相关文章

二分查找

在递增或者递减的一列数中,依次用目前区间最中间的数跟target比较,根据比较结果更新区间,再循环这个过程,知道找到最中间数=target或区间长度为0为止