242. Valid Anagram
Description
Given two strings s and t, write a function to determine if t is an anagram of s.
For example, s = "anagram", t = "nagaram", return true. s = "rat", t = "car", return false.
Solution
- 题意即判断两个字符串是否由相同的字符组成(字符以及对应出现次数都要相同)。
- 用一个26大小的线性哈希表即可判断同时判断字母和出现次数,代码如下。
bool isAnagram(char* s, char* t) {
int s_hash[26] = {0},t_hash[26] = {0};
int slen = strlen(s),tlen = strlen(t);
if (slen != tlen) return false;
for (int i = 0;i < slen;i++) {
s_hash[s[i] - 'a']++;
t_hash[t[i] - 'a']++;
}
for (int i = 0;i < 26;i++) {
if (s_hash[i] != t_hash[i])
return false;
}
return true;
}