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

leetcode_49 字母异位分组

1. 题意

给定一个字符串的集合,根据字符串中含有字符种类和数目进行分类。

2. 题解

只要排序后的字符串是完全一样的,我们就可以认为它们属于同一类。

  • 直接排序

class Solution1 {
public:vector<vector<string>> groupAnagrams(vector<string>& strs) {// string equal after sortstd::unordered_map< std::string, int> tpos;std::vector< std::vector<std::string> > ans;for (auto &str: strs) {std::array<int, 26> char_cnts{};for (auto c: str) {char_cnts[ c - 'a']++;}std::string tgStr;for (int i = 0;i < 26; ++i) {if ( char_cnts[i]) {tgStr.append( char_cnts[i], 'a' + i);}}if ( not tpos.count( tgStr )) {int pos = static_cast<int>( ans.size() );std::vector< std::string> vec;ans.emplace_back( vec );tpos[ tgStr ] = pos;}ans[ tpos[ tgStr ] ].push_back( str );}return ans;}
};
  • 统计次数,构造排序后的字符串

class Solution {
public:vector<vector<string>> groupAnagrams(vector<string>& strs) {// string equal after sortstd::unordered_map< std::string, std::vector<std::string> > tpos;for (auto &str: strs) {std::string ps = str;std::sort(ps.begin(), ps.end());tpos[ps].push_back( str );}std::vector< std::vector<std::string> > ans;for (auto &[k,v]: tpos) {ans.emplace_back( v );}return ans;}
};
http://www.dtcms.com/a/249367.html

相关文章:

  • 写出优秀的 Git 提交信息:一份详尽指南(Angular 风格)
  • 板凳-------Mysql cookbook学习 (十--6)
  • 1 Studying《Arm A715 Software Optimization Guide》
  • Vue 事件修饰符详解
  • Java相关-链表-设计链表-力扣707
  • JavaScript基础-阻止事件冒泡
  • Linux 系统目录结构概述-linux024
  • 实现回显服务器(基于UDP)
  • 自定义 eslint 规则
  • PDF转Markdown基准测试
  • SKUA-GOCAD入门教程-第八节 线的创建与编辑3
  • uniapp的app项目,在华为pad上运行,页面显示异常
  • Odoo 如何系统地管理产品从概念设计到废弃淘汰的全过程
  • pycharm 2025.1.1-专业版jupyter notebook远程连接
  • 从STM32到NXP:GPIO就像装修房子,多了个“智能开关”
  • RabbitMQ的交换机和队列概念
  • 前端面试专栏-主流框架:7. React核心概念(组件、JSX、状态管理)
  • 从数据孤岛到智能决策:数据编排如何重构企业数据架构?
  • Java重构实战:小步快跑的高效策略分析
  • 创客匠人:AI重构知识IP定位与变现效率新范式
  • 浏览器读取图片的元数据XMP
  • langchain从入门到精通(七)——利用回调功能调试链应用 - 让过程更透明
  • 如何在 Elementary OS 上安装 Snap Store
  • HarmonyOS 5鸿蒙多端编译实战:从Android/iOS到HarmonyOS 5 的跨端迁移指南详
  • 【Unity】MiniGame编辑器小游戏(一)俄罗斯方块【Tetris】
  • Python 自动化测试/脚本
  • 使用 vscode 开发 uni-app 项目时如何解决 manifest.json 文件注释报错的问题
  • Java-46 深入浅出 Tomcat 核心架构 Catalina 容器全解析 启动流程 线程机制
  • Linux集市采购指南[特殊字符]:yum和apt的“抢货”大战!
  • 【Linux教程】Linux 生存指南:掌握常用命令,避开致命误操作