CanTechLab

Can

Leetcode:242.有效的字母异位词

2024-06-11

Leetcode题目链接:242. 有效的字母异位词

题目描述

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

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

题目示例

示例一

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

示例二

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

提示

1 <= s.length, t.length <= 5 * 104
s 和 t 仅包含小写字母

解题思路

哈希表(数组形式)

  • 定义大小为26的 num 数组,用于存储 s 和 t 字符串中各个字符出现的次数

  • for循环遍历字符串 s,对应位置的num[ s[i] - 'a' ]++

  • for循环遍历字符串 t,对应位置的num[ t[i] - 'a' ]--

  • 遍历num 数组,若存在任一数组元素不为0,则两个字符串中存在不一样的字符,不满足字母异位词的条件,返回false,否则返回true

我的答案

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

提交结果