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