题目描述
代码解决以及思路
这个方法的时间复杂度为O(N),其中N是字符串的长度,空间复杂度为O(1)(因为辅助数组的大小是固定的26)。
class Solution {
public:
bool isAnagram(string s, string t) {
// 创建一个大小为26的整数数组,用于存储每个字母的出现次数
int hash[26] = {0};
// 遍历字符串s,将每个字母的出现次数记录在hash数组中
for (int i = 0; i < s.size(); i++) {
// 并不需要记住字符'a'的ASCII值,只需要求出一个相对数值即可
hash[s[i] - 'a']++;
}
// 遍历字符串t,将每个字母的出现次数从hash数组中减去
for (int i = 0; i < t.size(); i++) {
hash[t[i] - 'a']--;