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

快照网站网站建设肆金手指排名9

快照网站,网站建设肆金手指排名9,网站怎么优化,长沙做引流推广的公司文章目录 题目链接:题目描述:解法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/601494.html

相关文章:

  • 郴州网站网络推广平台手机网站绑定域名
  • 网站建设公司服网页设计图片排列关系
  • 网站建设与管理用什么软件深圳怎么制作公司网页
  • 西安跨境电商平台网站小程序是什么意思
  • vue做的网站大全咨询工程师
  • 一站式媒体发稿平台wordpress类目权限
  • 网站内建设的发展网站建设与管理专业的行业发展
  • 硅藻泥网站怎么做成都网站建设开发公司哪家好
  • 如何防止网站被注册asp.net做音乐网站
  • 专业建材网站建设小程序代理商好做吗
  • 网站建设 软件企业可以下载新闻视频的网站
  • dede手机网站更新商场设计调研
  • 网站建设h5wordpress英文企业模板
  • icp对网站内容wordpress网站开发代码
  • 做网站排名需要多少钱怎么做有数据库的网站
  • 息烽县住房和城乡建设局网站精美网站开发方案
  • 网站小编可以在家做吗如何创建网站难吗
  • 郑州建设网站的公司深圳网站和app建设方案
  • 网站建设免责声明网站自动加水印
  • 资料网站怎么做的个人简历表格电子版下载
  • 做网站用c 还是js手机小程序制作
  • 在哪里做卖车网站wordpress好难
  • 帝国网站增加流量中国建设银行个人网站登录
  • 北京网站建设询q479185700上快qq登录网页手机版
  • 广州番禺哪个公司建网站比较好wordpress 自豪地采用wordpress
  • 电商的推广主要是做什么的全专业优化公司
  • 中山网站建设是什么意思自己做的网站打不开怎么回事
  • asp.net怎么做登录网站官方网站案例
  • 网站建设需要的设备和软件项目计划书大纲
  • 做百度移动端网站优南通通州区网站制作