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

【LeetCode】49. 字母异位词分组

题目链接
在这里插入图片描述

题目解析

找到不同排列但字符种类与个数一致的字符串并进行归类
有两种方法:

  1. 每个字符串都排序,这样一样的就会出来 O(nlogn)
  2. 遍历字符串,使用字符+个数的形式进行编码,可以表现出唯一编码 O(n)

再使用哈希容器进行记录,即可

第二个方法编码出来的key长度是远小于字符串的长度,而快排出来的关键字就是字符串
总体来说,第二个方法要更优秀

代码

class Solution {
public:string str2code(string& str) {string code = "";int arr[26] = {0};for (auto& e : str) {arr[e - 'a'] += 1;}for (int i = 0; i < 26; i++) {if (arr[i] == 0)continue;code.append(string(1, 'a' + i) + to_string(arr[i]));}return code;}vector<vector<string>> groupAnagrams(vector<string>& strs) {int str_len = strs.size();if (str_len == 1)return vector<vector<string>>(1, strs);unordered_map<string, vector<int>> str_dict;vector<vector<string>> ret;for (int i = 0; i < str_len; i++) {string code = str2code(strs[i]);if (str_dict.find(code) == str_dict.end()) {str_dict.emplace(make_pair(code, vector<int>(1,i)));} else {str_dict[code].push_back(i);}}for (const auto& e : str_dict) {vector<string> tmp;for (auto idx : e.second) {tmp.push_back(strs[idx]);}ret.push_back(tmp);}return ret;}
};
http://www.dtcms.com/a/548824.html

相关文章:

  • 创建网站需要注意的问题成都最专业做网站的
  • 上海松江网站制作南京市规划建设展览馆网站
  • 好用的大屏互动哪个公司好
  • Rust 深度指南:从 0 到 1,不只是学习,更是“思维重塑”
  • 题解:P2519 [HAOI2011] problem a
  • Rust async/await 语法糖的展开原理:从状态机到零成本异步
  • 车联网网络安全防护定级备案:数字时代交通变革下的安全基石
  • 李宏毅机器学习笔记36
  • Ubuntu(⑤Redis)
  • 【实战大全】MySQL连接全攻略:命令行+编程语言+可视化工具+故障排查
  • Python快速入门专业版(五十三):Python程序调试进阶:PyCharm调试工具(可视化断点与变量监控)
  • 企业建立网站需要什么条件wordpress divi
  • 如何解决笔记本电脑上不能使用管家婆软件快捷键的问题
  • MATLAB基于IOWHA算子和倒数灰关联度的组合预测模型
  • 从零搭建 Kafka + Debezium + PostgreSQL:打造实时 CDC 数据流系统
  • 酒吧网站设计网站建设及网络营销
  • 5分钟启动标准化安卓环境:Docker-Android让模拟器配置不再踩坑
  • VSCode + XMake搭建OpenGL开发环境
  • vscode ssh远程连接 ubuntu虚拟机
  • AIRSKIN®机器人电子皮肤传感器:为科研机器人披上智能“皮肤”
  • iOS 26 应用管理实战 多工具协同构建开发与调试的高效体系
  • 双向链表的“链”与“殇”——Rust LinkedList 的深度剖析、实战与再思考
  • Vue3 重构待办事项(主要练习组件化)
  • 高校网站建设的文章wordpress 初始密码
  • 上海网上注册公司官网烟台seo做的好的网站
  • 【Frida Android】基础篇15(完):Frida-Trace 基础应用——JNI 函数 Hook
  • Linux-自动化构建make/makefile(初识)
  • 【android bluetooth 协议分析 14】【HFP详解 2】【蓝牙电话绝对音量详解】
  • 【实战总结】MySQL日志文件位置大全:附查找脚本和权限解决方案
  • 系统架构设计师备考第60天——嵌入式硬件体系软件架构