学校网站建设问卷调查表,乐都区wap网站建设公司,可以观看国外短视频的app,中建招标平台叫什么网文章目录 1.题目示例提示 2.解答思路3.实现代码结果 4.总结 1.题目
给你一个字符串数组#xff0c;请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。
字母异位词 是由重新排列源单词的所有字母得到的一个新单词。
示例
示例 1: 输入: strs [“eat”, “tea”… 文章目录 1.题目示例提示 2.解答思路3.实现代码结果 4.总结 1.题目
给你一个字符串数组请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。
字母异位词 是由重新排列源单词的所有字母得到的一个新单词。
示例
示例 1: 输入: strs [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”] 输出: [[“bat”],[“nat”,“tan”],[“ate”,“eat”,“tea”]]
示例 2: 输入: strs [“”] 输出: [[“”]]
示例 3: 输入: strs [“a”] 输出: [[“a”]]
提示
1 strs.length 1040 strs[i].length 100strs[i] 仅包含小写字母
2.解答思路
需要定义的变量 一定要有一个对应返回类型的answer。 设置一个哈希表hash。 (1) 键存储字符串排序后的样子唯一的 (2) 值每一类排序后一样的字符串放在同一类的分组里。存储原来的字符串 具体实现思路 直接遍历整个strs排序后一样的放到同一个hash表的键对应的值的位置。 存储到hash表后在将每个值的答案存储到answer中。
补充知识点 sort(s.begin(), s.end());//排序的类型需要是字符串 字符串更多成员函数详细介绍C字符串的常用操作函数全总结 unordered_mapstring, vector string hash; // 定义一个哈希表 hash[s].push_back(strs[i]);//将键s对应的值中添加一个vector string 类型的元素strs[i]
遍历这种类型的hash表时 auto 自动识别变量类型 pair表示哈希表中的一对键值对 其中pair.first表示哈希表中键的内容 其中pair.second表示哈希表中值的内容
3.实现代码
class Solution
{
public:vectorvectorstring groupAnagrams(vectorstring strs){vectorvectorstring answer;//答案存放unordered_mapstring, vectorstring hash; // 定义一个哈希表// 键用来存放排序后的字符串值用来存放原来字符串strs中的对应字符串for (int i 0; i strs.size(); i){string s strs[i]; sort(s.begin(), s.end());hash[s].push_back(strs[i]);}//此段for循环语句可使用如下代码代替// for (string str : strs)// {// string s str;// sort(s.begin(), s.end());// hash[s].push_back(str);// }for (auto pair : hash){ /* pair表示哈希表中的一对键值对pair.first表示哈希表中键的内容pair.second表示哈希表中值的内容*/answer.push_back(pair.second);}return answer;}
};结果 4.总结
新学了哈希表的形式以及增加键和值的方法还有遍历这种哈希表的方法。
自信坚持upup