题目
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。
解题思路
利用哈希法键值对应的思想,用一个长度为26的数组存储一个字符串每个单词出现的次数,再遍历第二个字符串减去出现次数,最后如果该数组全为0则互为字母异位词
下面是代码
//基于哈希表思想的数组方法
#include <string>
using namespace std;
class Solution
{
public:
bool isAnagram(string s, string t)
{
int record[26] = { 0 };
for (int i = 0; i < s.size(); ++i)
{
record[s[i] - 'a']++;
}
for (int i = 0; i < t.size(); ++i)
{
record[t[i] - 'a']--;
}
for (int i = 0; i < 26; i++)
{
if (record[i] != 0)return false;
}
return true;
}
};