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.
anagram: n.相同字母异序词
题目较简单,我就不翻译了.
原题链接: https://leetcode.com/problems/valid-anagram/
该题比较简单, 思路也很简单.就是比较两者之间的字母直方图是否匹配.
bool isAnagram(char* s, char* t) {
int sSize = strlen(s);
int tSize = strlen(t);
if (sSize != tSize) {
return false;
}
const int MAX_SIZE = 26;
int patternS[MAX_SIZE];
int patternT[MAX_SIZE];
int index = -1;
memset(patternS, '\0', MAX_SIZE * sizeof(int));
memset(patternT, '\0', MAX_SIZE * sizeof(int));
for (int i = 0; i < sSize; ++i) {
++patternS[(int) (s[i] - 'a')];
++patternT[(int) (t[i] - 'a')];
}
for (int i = 0; i < MAX_SIZE; ++i) {
if (patternS[i] != patternT[i]) {
return false;
}
}
return true;
}