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;
}