已做具体注释。
class Solution {
public:
bool isAnagram(string s, string t) {
if(s.size() != t.size())//若长度不同,肯定不为字母异位词
{
return false;
}
int arr[26] = {0};//定义一个记录字母出现次数的数组,总共26个字母
for (int i = 0; i < s.size(); i++)
{
arr[s[i] - 'a']++;//若s中有改字母,则对应数组元素加一
}
for (int i = 0; i < t.size(); i++)
{
arr[t[i] - 'a']--;//若t中有该字母,则对应数组元素减一
}
for (int i = 0; i < 26; i++)
{
if(arr[i] != 0)//若数组中有不大于零的数,则肯定不为字母异位词
{
return false;
}
}
return true;
}
};