LeetCode:
题目描述:
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。
解题思路:
法一:排序
调用库函数直接对两个字符串进行排序后,进行比较。返回其比较结果。
代码实现:
bool isAnagram(string s, string t) {
sort(s.begin(),s.end());
sort(t.begin(),t.end());
return s==t;
}
法二:哈希
由于字符串中字母皆为26个英文字母,遍历第一个字母串使用数组建立一个小型哈希表,记录字母出现的频率。
再遍历第二个字符串,将其每个字母出现的频率在哈希表中进行搜索。返回该字母在哈希表中的值。
代码实现:
bool isAnagram(string s, string t) {
vector< int> hash(26);
if(s.size()!=t.size())
{
return false;
}
for(char& iter: s)
{
hash[iter-'a']++;
}
for(char& iter : t)
{
hash[iter-'a']--;
if(hash[iter-'a']<0)
{
return false;
}
}
return true;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具