(写给未来的遗忘的自己)
class Solution {
public:
bool isAnagram(string s, string t) {
int ascii_record[26]={0};
for(int i=0;i<s.size();i++)
{
ascii_record[s[i]-'a']++;
}
for(int j=0;j<t.size();j++)
{
ascii_record[t[j]-'a']--;
}
for(int k=0;k<26;k++)
{
if(ascii_record[k]!=0){
return false;
}
}
return true;
}
};
知识点:1.字符串本质是字符数组,所以可以使用处理数组的方式获取到string类型里面的每一个字母。
2.字符a到z是对应的ASCII的26个连续的数值,所以将每一个数值减去第一个 ‘a’ 的ASCII得到的就是从0-25的连续数字。
3.相同字母出现的次数是否相同,就是看最后数组每一个位置是否都是0