无锡上海网站建设,网站建设开淘宝直通车,wordpress常量,租服务器发布网站文章目录 原题链接思路1#xff08;字符串排序后比较#xff09;代码1思路2#xff08;哈希表#xff09;代码2 原题链接 Leetcode242.有效的字母异位词 思路1#xff08;字符串排序后比较#xff09; t 是 s 的字母异位词 等价于 将 t 和 s 排序后#xff0c;两个字符串… 文章目录 原题链接思路1字符串排序后比较代码1思路2哈希表代码2 原题链接 Leetcode242.有效的字母异位词 思路1字符串排序后比较 t 是 s 的字母异位词 等价于 将 t 和 s 排序后两个字符串相等利用sort()函数对字符串进行排序 如果两字符串的长度不同 也就意味不是异位词 代码1
class Solution {
public:bool isAnagram(string s, string t) {if(s.size()!t.size()) return false;// 如果两个字符串的长度不同那么它们不可能互为异位词直接返回 falsesort(s.begin(), s.end());sort(t.begin(), t.end());return s t; }
};思路2哈希表 直接统计字母的数量遍历两个字符串集合的时候一个用于加 一个用于减 如果之后集合里面的数字都是0 说明两两抵消 就是合法的字母异位词 否则就不是。 代码2
class Solution {
public:bool isAnagram(string s, string t){unordered_mapchar,int um;// 定义 unordered_map 对象 um用于存储各个字符在字符串 s 中出现的次数if(s.size()! t.size()) return false;// 如果两个字符串的长度不同那么它们不可能互为异位词直接返回 falsefor(int i 0; i s.size(); i){um[s[i]];// 遍历字符串 s统计其中每个字符出现的次数并将其存储在 um中um[t[i]]--; // 遍历字符串 t对于其中的每个字符减少其在 um中的计数器} for(auto e: um) // 如果有任何一个键值对的值不为零则表示两个字符串不互为异位词返回 falseif(e.second ! 0) return false;return true;}
};