leetcode - Valid Anagram
leetcode - 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.
class Solution { public: bool isAnagram(string s, string t) { if(s.length() != t.length()){ return false; } map<char,int> sHash, tHash; string::iterator sit=s.begin(), tit=t.begin(); while(sit!=s.end()){ sHash[*sit]++; tHash[*tit]++; sit++; tit++; } map<char,int>::const_iterator sHashIt = sHash.begin(); while(sHashIt != sHash.end()){ map<char,int>::const_iterator tHashIt = tHash.find(sHashIt->first); if( tHashIt == tHash.end() || sHashIt->second != tHashIt->second) return false; sHashIt++; } return true; } };
验证两个数是否是仅仅字母顺序不同。
利用hashtable对每个字符计数,最后比较每个相同字符的出现次数是否相同。
注意map的使用方法。