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

leetcode日记(38)字母异位词分组

最开始的想法是创建vector<vector<string>> result,然后遍历strs中字符串,遍历result中vector,比较vector中第一个string和strs中string,若为字母异位词,则加入vector,若无,则创建新的vetcor加入result……

判断字母异位词的方法是建立长度为24,初始化全为0的string,每有一字母就将对应位置加一……(后来才发现有每个字母数量不能大于9的bug)

class Solution {
public:vector<vector<string>> groupAnagrams(vector<string>& strs) {vector<vector<string>> result;int n=strs.size();for(int i=0;i<n;i++){int m=result.size();int j=0;for(j;j<m;j++){vector<string> a=result[j];if(equal(a[0],strs[i])){result[j].push_back(strs[i]);break;}}if(j==m){vector<string> ss;ss.push_back(strs[i]);result.push_back(ss);}}return result;}bool equal(string s1,string s2){int n1=s1.size();int n2=s2.size();if(n1!=n2) return 0;string ss1(25,'0');for(int i=0;i<n1;i++){ss1[s1[i]-97]++;}string ss2(25,'0');for(int i=0;i<n2;i++){ss2[s2[i]-97]++;}if(ss1==ss2) return 1;else return 0;}
};

结果是时间超限,看了答案才知道有更好的方法,那就是用map,判断字母异位词也可以直接对string使用sort后进行比较,简洁很多

class Solution {
public:vector<vector<string>> groupAnagrams(vector<string>& strs) {unordered_map<string,vector<string>> mp;int n=strs.size();for(int i=0;i<n;i++){string str=strs[i];sort(str.begin(),str.end());mp[str].push_back(strs[i]);}vector<vector<string>> result;for(auto i=mp.begin();i!=mp.end();i++){result.push_back(i->second);}return result;}
};

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C++数组
  • 【密码学】消息认证
  • 九、Linux二进制安装ElasticSearch集群
  • 【JavaScript】解决 JavaScript 语言报错:Uncaught SyntaxError: Unexpected token
  • Qt QWebSocket网络编程
  • Nginx -Web服务器/反向代理/负载均衡
  • Selenium WebDriver中的显式等待与隐式等待:深入理解与应用
  • LabVIEW学习-LabVIEW储存Excel表格
  • 新版k8s拉取镜像失败问题
  • Python基础学习笔记——异常
  • python实现openssl的EVP_BytesToKey及AES_256_CBC加解密算法
  • “存算分离“和“湖仓一体“
  • Ansible 安装及使用说明
  • (补充)IDEA项目结构
  • Linux重要知识点
  • 深入了解以太坊
  • (三)从jvm层面了解线程的启动和停止
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • 《深入 React 技术栈》
  • 【391天】每日项目总结系列128(2018.03.03)
  • 【刷算法】求1+2+3+...+n
  • 2017-09-12 前端日报
  •  D - 粉碎叛乱F - 其他起义
  • download使用浅析
  • ES6系统学习----从Apollo Client看解构赋值
  • FineReport中如何实现自动滚屏效果
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • Python 基础起步 (十) 什么叫函数?
  • React as a UI Runtime(五、列表)
  • scrapy学习之路4(itemloder的使用)
  • springboot_database项目介绍
  • unity如何实现一个固定宽度的orthagraphic相机
  • XML已死 ?
  • 解析 Webpack中import、require、按需加载的执行过程
  • 力扣(LeetCode)357
  • 深入 Nginx 之配置篇
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 王永庆:技术创新改变教育未来
  • 一道面试题引发的“血案”
  • 一些关于Rust在2019年的思考
  • kubernetes资源对象--ingress
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • #define,static,const,三种常量的区别
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (19)夹钳(用于送货)
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (k8s中)docker netty OOM问题记录
  • (LeetCode C++)盛最多水的容器
  • (ros//EnvironmentVariables)ros环境变量
  • (第三期)书生大模型实战营——InternVL(冷笑话大师)部署微调实践
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (三十)Flask之wtforms库【剖析源码上篇】