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.
[Thoughts]
對於字符出現次數作個統計就行了。由於只有26個小寫字母,因此能夠創建一個大小爲26的索引數組charcount,用來統計每一個字符的出現次數。
對於s, 將其做爲字符數組進行遍歷,在遍歷的過程當中,對每一個出現的字符計數加一。
對於t, 一樣將其遍歷,對每一個出現的字符計數減一。
若是s和t是anagram , 那麼最後的charcount數組中全部字符的計數都應該是0, 不然就不是anagram。
[Code]
1: class Solution {
2: public:
3: bool isAnagram(string s, string t) {
4: vector<int> charcount(26, 0);
5: for(int i =0; i< s.length(); i++) {
6: charcount[s[i] - 'a'] ++;
7: }
8: for(int i =0; i< t.length(); i++) {
9: charcount[t[i] - 'a'] --;
10: }
11: for(int i =0; i<charcount.size(); i++) {
12: if(charcount[i] != 0) {
13: return false;
14: }
15: }
16: return true;
17: }
18: };