暴力解决问题是很简单的,这里主要学习了map的使用。
Given two strings s and t , write a function to determine if t is an anagram of s.
Example 1:
Input: s = "anagram", t = "nagaram" Output: trueExample 2:
Input: s = "rat", t = "car" Output: falseNote:
You may assume the string contains only lowercase alphabets.
问题就是判断字符串 s 与字符串 t 是否是同样字符组合的顺序变化。
代码为:
class Solution {
public:
bool isAnagram(string s, string t) {
map<char, int> m1;
map<char, int> m2;
if(s.size() != t.size())
return false;
for(char ch = 'a'; ch <= 'z'; ch++)
{
m1[ch] = 0;
m2[ch] = 0;
}
for(int i = 0; i < s.size(); i++)
{
m1[s[i]]++;
m2[t[i]]++;
}
int cnt = 0;
char c;
for(c = 'a'; c <= 'z'; c++)
{
if(m1[c] == m2[c])
{
cnt += m1[c];
}
else
break;
}
if(c > 'z' && cnt == s.size())
return true;
else
return false;
}
};