[leetbook中级算法-数组和字符串(java解法)]LC字母异位词分组_叶落雨飘的博客-程序员宝宝

技术标签: 算法  字符串  算法练习  哈希  数据结构  leetbook  

leetbook:中级算法

类型:数组和字符串

题目名:字母异位词分组

原题URL:https://leetcode-cn.com/leetbook/read/top-interview-questions-medium/xvaszc/

题目描述

给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。

示例

示例 1:

输入: ["eat", "tea", "tan", "ate", "nat", "bat"]
输出:
[
  ["ate","eat","tea"],
  ["nat","tan"],
  ["bat"]
]


限制

  • 所有输入均为小写字母。
  • 不考虑答案输出的顺序。

解题思路

1.用hash表来解决问题

2.根据题意所有的字符串经过排序后是一样的话,那么他们就是异位词组

3.那么就将所有字符串排序后作为Key存储在map中,这样所有异位词组都能找到自己的组织了

解题代码

class Solution {
    
    public List<List<String>> groupAnagrams(String[] strs) {
    
        Map<String,List<String>> map = new HashMap<>();
        for(String str : strs) {
    
            char[] chars = str.toCharArray();
            Arrays.sort(chars);
            String s = new String(chars);
            List<String> list = map.getOrDefault(s,new ArrayList());
            list.add(str);
            map.put(s,list);
        }
        return new ArrayList<>(map.values());
    }
}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_41522089/article/details/113038531

智能推荐

Linux设备驱动第七篇:高级字符驱动操作之阻塞IO_ymj321的博客-程序员宝宝

我们之前介绍过简单的read,write操作,那么会有一个问题:当驱动无法立即响应请求该怎么办?比如一个进程调用read读取数据,当没有数据可读时该怎么办,是立即返回还是等到有数据的时候;另一种情况是进程调用write向设备写数据,如果缓冲区满了或者设备正忙的时候怎么办,是立即返回还是继续等待直到设备可写?这种情况下,一般的缺省做法是使进程睡眠直到请求可以满足为止。本篇就介绍遇到这类问题驱动的处理...

2020.09.07贝壳笔试_小李子爱吃李子的博客-程序员宝宝

有史以来第一次ac了3道题,激动剪刀石头布特定的字符串栅栏上色牛牛交朋友学技能剪刀石头布题设就是我们最常见的剪刀石头布:牛妹和牛牛俩玩简单石头布(剪刀J,石头S,布B,规则就是我们常用的规则),给定一个大小为4的字符数组,前两个表示牛妹的左右手,后两个表示牛牛的左右手,让我们判断牛妹出那个手胜出的概率大,一样则输出“same”。时间紧迫,我就想到利用if else语句来实现。import java.util.Scanner;public class demo01 { public sta

UIScrollView contentInset contentOffset contentSize 详解_jeffasd的博客-程序员宝宝

//// ViewController.m// test_UIscrollView_03//// Created by admin on 4/19/16.// Copyright 2016 jeffasd. All rights reserved.//#import "ViewController.h"#define VIEW_WIDTH self.view.fr

python版本的flapy bird_python实现flappy bird小游戏_weixin_39801158的博客-程序员宝宝

本文实例为大家分享了python实现flappy bird游戏的具体代码,供大家参考,具体内容如下flappygamemain.py# -*- coding: utf-8 -*-from __future__ import unicode_literals"""Created on Dec 25 [email protected]: [email protected]: [email protected]"...

Window CE 6.0流驱动开发实验_robotCSDN的博客-程序员宝宝

Window CE 6.0流驱动开发实验                                      作者:桂林电子科技大学student       我是直接从51到ARM,受51的影响,在wince6.0下怎么编写应用程序控制开发板的LED,查了好多资料,并结合开发板提供的LED测试程序和led驱动,编写了一个简单的LED驱动和应用程序来控制开发板的LED!

SpringMvc和Spring的父子容器关系_指尖de柔情的博客-程序员宝宝

例如:在applicationContext-service中配置:&amp;lt;!-- 扫描包加载Service实现类 --&amp;gt;&amp;lt;context:component-scan base-package=&quot;com.taotao&quot;&amp;gt;&amp;lt;/context:component-scan&amp;gt;会扫描@Controller、@Service、@Repository、@CompnentSpri...

随便推点

基于matlab FPGA verilog的FIR滤波器设计_FPGA技术江湖的博客-程序员宝宝

​大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。今天和大侠简单聊一聊基于matlab FPGA verilog的FIR滤波器设计,话不多说,上货。本次设计实现8阶滤波器,9个系数,由于系数的对称性,h(0)=h(8),h1(1)=h(7),h(2)=h(6),h(3)=h(5),h(4)为中间单独一个系数。根据公式:实现框图:推导出当系数N为偶数时,例..

JavaScript数组到底是什么?_cumian8165的博客-程序员宝宝

This article is a beginner's introduction to JavaScript arrays and data structures. It covers why we need them, and how they fit into the front-end context. 本文是JavaScript数组和数据结构的初学者介绍。 它涵盖了我们为什么需要它们,以...

爬虫神器 Pyppeteer 介绍及爬取某商城实战_Python数据之道的博客-程序员宝宝

作者:叶庭云,来自读者投稿编辑:Lemon出品:Python数据之道提起 selenium 想必大家都不陌生,作为一款知名的 Web 自动化测试框架,selenium 支持多款主流浏览器...

linux内核编译最详细,Linux内核编译详细教程,linux内核编译_weixin_39969340的博客-程序员宝宝

Linux内核编译详细教程,linux内核编译尝试编译下Linux-kernel 4.14.14,使用Ubuntu 16.04 64位 系统。kernel-4.14.14 内核文件约96MB,解压后得到linux-4.14.14目录约900MB。在终端中切换到解压后的linux-4.14.14文件目录,执行下面的命令:1. .config复制一份当前系统编译时的配置,在/usr/src目录下$ l...

驱动VS1003要注意的事项_Eleanor_gao的博客-程序员宝宝

  VS1003共有16个16位的寄存器,地址分别为0x0–0xF;除了模式寄存器(MODE,0x0)和状态寄存器(STATUS,0x1)在复位后的初值分别0x800和0x3C外,其余的寄存器在VS1003初始化后的值均为0。         初始化SPI所有对VS1003的操作将通过SPI总线来完成。在默认情况下,数据位将在SCLK的上升沿有效(被读入VS1003),因此需要在SCL

推荐文章

热门文章

相关标签