原理:
- 遍历s字符串,统计s字符串各个字母的个数
- 遍历t字符串,统计t字符串各个字母的个数
- 比较各个字母个数是否相同
C++代码:
bool isAnagram(string s, string t) {
if(s.length()!=t.length()) //如果长度不等,肯定不是异位词
{
return false;
}
else
{
vector<int> ans(26,0); //储存每个字母出现的个数
for(auto a:s) //统计s字符串的各个字母个数
{
ans[a-'a']++;
}
for(auto a:t) //将t字符串字母出现的个数减去s字符串的个数
{
ans[a-'a']--;
}
for(int i=0;i<26;i++) //如果ans数组的元素都为零,则为异位词
{
if(ans[i]!=0)
{
return false;
}
}
return true;
}
}