哈希表 | LeetCode 242 有效的字母异位词

44 阅读1分钟

题目描述

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

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

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

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

本题思路

class Solution {
public:
    bool isAnagram(string s, string t) {
        int nums[26] = {0};
        for (int i = 0; i < s.size(); i++) {
            nums[s[i] - 'a']++;
        }
        for (int i = 0; i < t.size(); i++) {
            nums[t[i] - 'a']--;
        }
        for (int i = 0; i < 26; i++) {
            if (nums[i] != 0) {
                return false;
            }
        }
        return true;
    }
};

思路很简单,一共二十六个字母,利用辅助数组。先对一个字符串进行统计,在对另外一个字符串的进行统计,字符出现一次,对应数组中的数量-1。最后在对辅助数组进行遍历,全都为0那么两字符串为字母异位词。