首页 > 其他分享 >[哈希]leetcode242. 有效的字母异位词

[哈希]leetcode242. 有效的字母异位词

时间:2022-11-06 14:32:14浏览次数:59  
标签:leetcode242 字符 arr 下标 哈希 int 异位 数组

题目

给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。 示例 1: 输入: s = "anagram", t = "nagaram" 输出: true 示例 2: 输入: s = "rat", t = "car" 输出: false

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

代码展示

bool isAnagram(char * s, char * t){
   int  arr[26]={0};
   int i=0;
   int lens=strlen(s);
   int lent=strlen(t);
   for(i=0;i<lens;i++)
   {
       arr[s[i]-'a']++;
   }
   for(i=0;i<lent;i++)
   {
       arr[t[i]-'a']--;
   }
    for(i=0;i<26;i++)
    {
        if(arr[i]!=0)
        {
            return false;
        }
    }
    return true;
}

过程解析

由于该题给出的是小写字母 a-z,所以设置一个整形数组arr ,初始化每个都为0 image.png 假设下标 0对应 a ,下标1 对应b, 下标 2对应c

image.png

在s字符数组中 使用 数组中的字符 - 'a' 即arr数组下标所对应的位置 并使值++ 假设如图所示 image.png

在t字符数组中 我们只需判断t 数组中的字符 - 'a' 即arr数组下标所对应的位置 并使值-- image.png

若此时arr数组中的值为0,则说明是有效的字母异位词,反之,就不是

标签:leetcode242,字符,arr,下标,哈希,int,异位,数组
From: https://blog.51cto.com/u_15787387/5827277

相关文章