242. Valid Anagram
Difficulty: Easy
给定两个字符串s和t,确定它们是否是相同字母异序词。
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.
Note: You may assume the string contains only lowercase alphabets.
Follow up: What if the inputs contain unicode characters? How would you adapt your solution to such case?
//假设给定的字符串只包含小写字母
bool isAnagram(char* s, char* t) {
int i;
int lens;
int* a;
lens=strlen(s);
if(lens != strlen(t))
return false;
a=(int*)malloc(26*sizeof(int));
memset(a,0,26*sizeof(int));
for(i=0;i<lens;i++)
{
a[s[i]-49-'0']++; //字母'a'对应a[0]
a[t[i]-49-'0']--;
}
for(i=0;i<26;i++)
{
if(a[i] != 0)
{
free(a);
return false;
}
}
free(a);
return true;
}
若输入字符串包含Unicode字符呢?应该如何改进代码?