当前位置: 首页 > 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;}
};

相关文章:

  • 写出优秀的 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定位与变现效率新范式
  • 网站建设浏览器不兼容/搜索引擎技术优化
  • 网站建设后续说明/近期国家新闻
  • 网站建设与管理学的是什么/班级优化大师app下载
  • 邓亚萍20亿做网站/网络营销方案策划
  • 做外贸网站推广/微信朋友圈广告怎么推广
  • 金华电子商务网站建设/四川网络推广推广机构