给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。
思路
比较
直接对两个字符串进行排序,然后比较,相同结果为true,不同则为false。
哈希表
使用两个哈希表,key是字符,value是出现次数,然后比较两个哈希表。
哈希表(进阶)
这是从官方题解看到的,比我的好;
用26个字母的相对位置做下标,对应元素存储字母出现次数。
bool isAnagram(char* s, char* t) {
int len_s = strlen(s), len_t = strlen(t);
if (len_s != len_t) {
return false;
}
int table[26];
memset(table, 0, sizeof(table));
for (int i = 0; i < len_s; ++i) {
table[s[i] - 'a']++;
}
for (int i = 0; i < len_t; ++i) {
table[t[i] - 'a']--;
// 如果出现table[i]<0,则说明t包含一个不在s中的额外字符,返回false即可。
// 不需遍历完整字符串
if (table[t[i] - 'a'] < 0) {
return false;
}
}
return true;
}
4 条评论
2025年10月新盘 做第一批吃螃蟹的人coinsrore.com
新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
新车首发,新的一年,只带想赚米的人coinsrore.com
新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
新车上路,只带前10个人coinsrore.com
新盘首开 新盘首开 征召客户!!!coinsrore.com
新项目准备上线,寻找志同道合 的合作伙伴coinsrore.com
新车即将上线 真正的项目,期待你的参与coinsrore.com
新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com
意象选取精妙,营造出空灵意境。
?幽默类评语?
作者的才华横溢,让这篇文章成为了一篇不可多得的艺术品。