当前位置: 首页 > wzjs >正文

网站开发 公司爱网站查询

网站开发 公司,爱网站查询,网络服务器施工方案,软件下载网站怎么做文章目录 题目链接:题目描述:解法C 算法代码:解释第1步:处理 "eat"第2步:处理 "tea"第3步:处理 "tan"第4步:处理 "ate"第5步:处理 "n…

文章目录

    • 题目链接:
    • 题目描述:
    • 解法
    • C++ 算法代码:
    • 解释
        • 第1步:处理 "eat"
        • 第2步:处理 "tea"
        • 第3步:处理 "tan"
        • 第4步:处理 "ate"
        • 第5步:处理 "nat"
        • 第6步:处理 "bat"
        • 提取结果


题目链接:

49. 字母异位词分组


题目描述:

a6c6964de828963544726191147a4a63


解法

哈希表

  1. 判断两个字符串是不是字母异位词(排序)
  2. 分组<string,string[]>

例如:strs = ["eat", "tea", "tan", "ate", "nat", "bat"]

aet --> eat,tea,ate

ant --> tan,nat

abt --> bat

最后遍历哈希表,把里面的value提取出来。


C++ 算法代码:

class Solution 
{
public:vector<vector<string>> groupAnagrams(vector<string>& strs) {// 创建哈希表,键为排序后的字符串(作为字母异位词的标识)// 值为原始字符串的集合(即所有属于该异位词组的原始字符串)unordered_map<string, vector<string>> hash;// 1. 遍历所有字符串,将字母异位词分组for(auto& s : strs){// 创建字符串副本并排序string tmp = s;sort(tmp.begin(), tmp.end());// 排序后的字符串作为键,原始字符串添加到对应的异位词组中// 例如:"eat"、"tea"、"ate" 排序后都是 "aet",因此会被分到同一组hash[tmp].push_back(s);}// 2. 从哈希表中提取结果,构建返回值vector<vector<string>> ret;// 使用结构化绑定遍历哈希表中的每个键值对// x是排序后的字符串(键),y是对应的字母异位词组(值)for(auto& [x, y] : hash){// 将每个异位词组添加到结果中ret.push_back(y);}return ret;}
};

解释

例如:strs = ["eat", "tea", "tan", "ate", "nat", "bat"]

第1步:处理 “eat”
  • 创建副本并排序:tmp = "eat" → sort → "aet"
  • 检查哈希表:hash["aet"] 不存在
  • 插入到哈希表:hash["aet"] = ["eat"]
  • 哈希表现在:hash = {"aet": ["eat"]}
第2步:处理 “tea”
  • 创建副本并排序:tmp = "tea" → sort → "aet"
  • 检查哈希表:hash["aet"] 已存在,其值为 ["eat"]
  • 更新哈希表:hash["aet"].push_back("tea") 添加原字符串
  • 哈希表现在:hash = {"aet": ["eat", "tea"]}
第3步:处理 “tan”
  • 创建副本并排序:tmp = "tan" → sort → "ant"
  • 检查哈希表:hash["ant"] 不存在
  • 插入到哈希表:hash["ant"] = ["tan"]
  • 哈希表现在:hash = {"aet": ["eat", "tea"], "ant": ["tan"]}
第4步:处理 “ate”
  • 创建副本并排序:tmp = "ate" → sort → "aet"
  • 检查哈希表:hash["aet"] 已存在,其值为 ["eat", "tea"]
  • 更新哈希表:hash["aet"].push_back("ate") 添加原字符串
  • 哈希表现在:hash = {"aet": ["eat", "tea", "ate"], "ant": ["tan"]}
第5步:处理 “nat”
  • 创建副本并排序:tmp = "nat" → sort → "ant"
  • 检查哈希表:hash["ant"] 已存在,其值为 ["tan"]
  • 更新哈希表:hash["ant"].push_back("nat") 添加原字符串
  • 哈希表现在:hash = {"aet": ["eat", "tea", "ate"], "ant": ["tan", "nat"]}
第6步:处理 “bat”
  • 创建副本并排序:tmp = "bat" → sort → "abt"
  • 检查哈希表:hash["abt"] 不存在
  • 插入到哈希表:hash["abt"] = ["bat"]
  • 哈希表现在:hash = {"aet": ["eat", "tea", "ate"], "ant": ["tan", "nat"], "abt": ["bat"]}
提取结果

遍历哈希表中的每个键值对,提取值部分(字符串组):

  1. "aet" 对应的值 ["eat", "tea", "ate"] → 添加到 ret
  2. "ant" 对应的值 ["tan", "nat"] → 添加到 ret
  3. "abt" 对应的值 ["bat"] → 添加到 ret

最终结果:ret = [["eat", "tea", "ate"], ["tan", "nat"], ["bat"]]

http://www.dtcms.com/wzjs/446826.html

相关文章:

  • 做网站的背景图片要多大天津百度关键词seo
  • 建设公司网站标题seo下拉优化
  • 推广网站2024研究生培训机构排名
  • 个人网站导航模版天津百度推广公司电话
  • wordpress 查询 分页seo关键词排名网络公司
  • 做网站产生的流量费怎么算优化网站标题和描述的方法
  • 域名申请后怎么建网站大数据查询个人信息
  • 专业网站建设案例查数据的网站有哪些
  • 国外财经网站是怎么做的徐州关键词优化平台
  • 宝山网站建设公司腾讯企点下载
  • 衡阳营养师报考网站游戏优化大师有用吗
  • 织梦cms sql注入破解网站后台管理员账号密码百度电脑端网页版入口
  • 惠州高端模板建站成品短视频app下载有哪些
  • 微网站有什么好处楚雄seo
  • 无锡崇安网站建设优化大师客服电话
  • 网站如何在公安局备案线下推广怎么做
  • 有哪些游戏可以做网站企业宣传片视频
  • 建立网站的平台国家免费职业培训平台
  • 虚拟空间做网站产品推广计划方案模板
  • 房山营销型网站建设长沙seo优化
  • 广东贸易网站建设哪家网站关键词快速排名服务
  • 物流网站开发宁波seo推荐
  • 滁州建设网站百度推广工具
  • 建个自己的网站难吗网站排名靠前的方法
  • 建小网站多少钱百度推广收费
  • 网站一片空白关键词app下载
  • 文档上传网站sem优化
  • 互动型网站成功例子a5站长网网站交易
  • 昆明网站建设排名世界比分榜
  • 最好的做网站百度下载安装2022最新版