题目描述:
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/valid-anagram
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
class Solution {
public:
bool isAnagram(string s, string t) {
//用两个哈希表,显示用时过长了
//自己建立一个数组作为哈希表,存26个字母的出现次数,x字母的下标即为x-'a'
//如果两个字符串长度不一样,则直接返回false
if (s.length() != t.length())
return false;
int arry[26] = {0};//该数组初始值全为0
for (int i = 0; i < s.length(); i++)
{
//s中的字母,出现次数加1
arry[s[i] - 'a']++;
//t中的字母,出现次数减1
arry[t[i] - 'a']--;
}
//最后遍历数组,如果每个值都是0,说明s和t的字母出现的次数一样,所以最后都消成0了
for (int i = 0; i < 26; i++)
{
if (arry[i] != 0)
return false;
}
return true;
}
};
本文介绍了如何使用Python高效地解决LeetCode上关于字母异位词的验证问题,通过避免冗余哈希表,利用字符数组记录出现次数。通过实例演示了如何在O(n)时间内完成判断,优化了空间复杂度。
585

被折叠的 条评论
为什么被折叠?



