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

LeetCode -- Group Anagrams

题目描述:
Given an array of strings, group anagrams together.


For example, given: ["eat", "tea", "tan", "ate", "nat", "bat"], 
Return:


[
  ["ate", "eat","tea"],
  ["nat","tan"],
  ["bat"]
]
Note:
For the return value, each inner list's elements must follow the lexicographic order.
All inputs will be in lower-case.


给定一个单词数组,对它们进行分组:由同样字母组成的单词分为一组。例如ate和eat分为一组。


思路:
1.使用哈希表存单词的升序排列
2.遍历每个单词的过程中,将其升序排列后判断是否在哈希表中存在:如果存在添加到组内;否则创建新组。
3.返回结果前需要对哈希的每个组内的单词进行升序排列。




实现代码:


public class Solution {
    public IList<IList<string>> GroupAnagrams(string[] strs) 
    {
        var hash = new Dictionary<string , IList<string>>();
    	for(var i = 0;i < strs.Length; i++){
    		var k = string.Join("",strs[i].OrderBy(x=>x));
    		if(!hash.ContainsKey(k)){
    			hash.Add(k, new List<string>(){strs[i]});
    		}
    		else{
    			hash[k].Add(strs[i]);
    		}
    	}
    	
    	var keys = hash.Keys.ToList();
    	foreach(var k in keys){
    		hash[k] = hash[k].OrderBy(x=>x).ToList();
    	}
    	
    	return hash.Values.ToList();
    }
}


相关文章:

  • LeetCode -- Kth Largest Element in an Array
  • 最近评论回复汇总
  • LeetCode -- Maximum Gap
  • OO系统分析员之路--用例分析系列(8)--如何编写一份完整的UML需求规格说明书[整理重发]...
  • LeetCode -- Maximum Subarray
  • ArcGIS Server Java ADF 案例教程 25
  • LeetCode -- Minimum Depth of Binary Tree
  • ArcGIS Server Java ADF 案例教程 26
  • LeetCode -- Minimum Path Sum
  • LeetCode -- Multiply Strings
  • ArcGIS Server Java ADF 案例教程 27
  • LeetCode -- Permutations II
  • SQL语句性能调整之ORACLE的执行计划
  • LeetCode -- Product of Array Except Self
  • 不知道为什么我的一oracle的sql调优文章笔记无法发表,提示“文章中出现禁止的词语,系统不予接受。”...
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • Android组件 - 收藏集 - 掘金
  • Angular 响应式表单之下拉框
  • es6要点
  • Flex布局到底解决了什么问题
  • React+TypeScript入门
  • windows-nginx-https-本地配置
  • 成为一名优秀的Developer的书单
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 简单数学运算程序(不定期更新)
  • 聊聊flink的TableFactory
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 使用 QuickBI 搭建酷炫可视化分析
  • 使用API自动生成工具优化前端工作流
  • 双管齐下,VMware的容器新战略
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 一份游戏开发学习路线
  • ​卜东波研究员:高观点下的少儿计算思维
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • (C语言)fread与fwrite详解
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (一)SpringBoot3---尚硅谷总结
  • (转)JAVA中的堆栈
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • (转载)从 Java 代码到 Java 堆
  • (状压dp)uva 10817 Headmaster's Headache
  • .NET 跨平台图形库 SkiaSharp 基础应用
  • .net 使用ajax控件后如何调用前端脚本
  • .NET处理HTTP请求
  • .net经典笔试题
  • .net下简单快捷的数值高低位切换
  • .net之微信企业号开发(一) 所使用的环境与工具以及准备工作
  • .Net中的集合
  • .pyc文件是什么?
  • .xml 下拉列表_RecyclerView嵌套recyclerview实现二级下拉列表,包含自定义IOS对话框...