算法刷题记录.leetcode242.有效字幕的异位词

72 阅读1分钟

题目描述

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

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

来源:力扣(LeetCode)
链接:leetcode.cn/problems/va…

哈希表:什么时候使用哈希表?

  • 当我们遇到了要快速判断一个元素是否出现集合里的时候
  • 需要判断一个元素是否出现过的

哈希的抽象性解释和解法

字母a-z的ASCII连续,利用该特点,将字母出现的次数按照a-z顺序依次映射给下表索引为0-25的数组元素。
即,数组是一张哈希表,表中按照(a-0,b-1,c-2...z-25)的哈希映射方式记录着a-z出现的元素个数。

代码

class Solution {

public:

bool isAnagram(string s, string t) {

int hash[26] = {0};

for(int i=0;i<s.size();i++){

hash[s[i]-'a']++;

}

for(int j=0;j<t.size();j++){

hash[t[j]-'a']--;

}

for(int h=0;h<26;h++){

if(hash[h]!=0){

return false;

}

}

return true;

}

};