242. Valid Anagram
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?
题目大意:给定字符串s和字符串t,如果s中包含的字母和t里包含的字母一样(顺序可不同),返回ture,否侧返回false
解题思路:把字母转换成数字,哈希存储,最后从0到25(a到z)比较两字符串中字母出现的个数是否一致,一致返回true,否侧返回false。
代码如下:
class Solution {
public:
bool isAnagram(string s, string t) {
int lens = s.length();
int lent = t.length();
if(lens != lent)
{
return false;
}
int a[30],b[30];
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
for(int i=0;i<lens;i++){
int xs = s[i] - 'a';
int xt = t[i] - 'a';
a[xs]++;
b[xt]++;
}
for(int i=0; i<26 ; i++){
if(a[i]!=b[i])
return false;
}
return true;
}
};