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.
題目意思:
給定兩個字串s和t,判斷字串t是否由字串s經過調整位置得到。(注意不是迴文串)
解題思路:
記錄每個字串中字元出現的次數,如果字串t是由字串s經過調整位置得到,則這兩個字元出現的次數是相等的。
原始碼:
1 class Solution { 2 public: 3 bool isAnagram(string s, string t) { 4 if(s.size()!=t.size()) return false; 5 map<char,int> cnt; 6 for(int i = 0 ; i < s.size(); ++ i) cnt[s[i]]++; 7 for(int i = 0; i < t.size(); ++ i) cnt[t[i]]--; 8 for(map<char,int>::iterator iter = cnt.begin(); iter!=cnt.end(); ++ iter){ 9 if(iter->second!=0)return false; 10 } 11 return true; 12 } 13 };