题目描述:
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/valid-anagram
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
class Solution {
public:
bool isAnagram(string s, string t) {
//用两个哈希表,显示用时过长了
//自己建立一个数组作为哈希表,存26个字母的出现次数,x字母的下标即为x-'a'
//如果两个字符串长度不一样,则直接返回false
if (s.length() != t.length())
return false;
int arry[26] = {0};//该数组初始值全为0
for (int i = 0; i < s.length(); i++)
{
//s中的字母,出现次数加1
arry[s[i] - 'a']++;
//t中的字母,出现次数减1
arry[t[i] - 'a']--;
}
//最后遍历数组,如果每个值都是0,说明s和t的字母出现的次数一样,所以最后都消成0了
for (int i = 0; i < 26; i++)
{
if (arry[i] != 0)
return false;
}
return true;
}
};