力扣49.字母異位詞分組

題目描述:

49. 字母異位詞分組

難度 中等

給你一個字符串數組,請你將?字母異位詞?組合在一起。可以按任意順序返回結果列表。

字母異位詞?是由重新排列源單詞的所有字母得到的一個新單詞。

示例 1:

輸入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]
輸出: [["bat"],["nat","tan"],["ate","eat","tea"]]

示例 2:

輸入: strs = [""]
輸出: [[""]]

示例 3:

輸入: strs = ["a"]
輸出: [["a"]]

解題思路分析:

?題目意思簡而言之就是,所有輸入的單詞,不關注單詞中字母的排列順序,只要字母都相同的就分為一組。

那么我們可以創建一個map集合,map集合的key存放每個單詞排序后的字符串,map集合的value存放一個List集合(該集合中存放所有字母都相同的單詞)。

實現步驟:

1.將輸入的字符串數組分別循環取出

2.取出字符數組中的單個字符串后,再將將每個字符串轉成字符數組

3.把字符數組排序后再轉成字符串作為map集合的key

4.查看map集合中是否有排序后字符串的key對應的值,沒有則對該key創建一個value值(ArrayList<String>)

5.將當前的字符串存放到當前key對應的map集合中

6.創建一個ArrayList集合存入所有map集合的value后返回【return ArrayList<List<String>>(map.values())】

注意:List<String> list = map.getOrDefault(key, new ArrayList<String>()); 這里用List接收(向上轉型,這個是java基礎不清楚的小伙伴可以去回顧一下這里不再贅述)

代碼:?

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 key = new String(chars);// 獲取當前map集合中key對應的list集合,沒有則新建一個list集合List<String> list = map.getOrDefault(key, new ArrayList<String>());// 將當前字符串添加到list集合中list.add(str);// 存入排序后的字符串作為key,存入當前字符串map.put(key, list);}// 取出map中的所有value放入ArrayList集合中返回 return new ArrayList<List<String>>(map.values());}
}

?最后大功告成!?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/696274.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/696274.shtml
英文地址,請注明出處:http://en.pswp.cn/news/696274.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

在Linux中查找大文件

在Linux中查找大文件&#xff0c;你可以使用find命令結合其他工具&#xff08;如sort和du&#xff09;來實現。以下是一些常見的方法&#xff1a; 1. 使用find命令查找大文件 你可以使用find命令來查找特定大小以上的文件。例如&#xff0c;要查找當前目錄及其子目錄中大小超…

高盛:日本這輪通脹是否可持續,關鍵看房租

租金在日本CPI中的權重高達20%&#xff0c;高盛預計短期內租金將繼續拖累通脹至1.7%或以下&#xff0c;長期有望溫和上行&#xff0c;使通脹穩在2%的水平。 日本正在轉向“去通縮”&#xff0c;房租能否支撐通脹態勢&#xff1f; 在日股今年一路高歌、有望“收復失地”時&…

redis的AOF機制

Redis AOF(Append Only File)機制是為了記錄每一次redis命令的操作并用于恢復數據。 AOF按順序記錄每一步操作&#xff0c;例如&#xff1a; set k 3, set k 5, set k 10 &#xff0c;當服務器重啟后依次執行命令恢復k 10。 日志寫入有三種方式&#xff1a; Always&#x…

【【深入淺出的了解從算法到RTL的基本流程】】

深入淺出的了解從算法到RTL的基本流程 首先 明確需求 &#xff0c;明確題目 接下來是第一輪建模-------目的是 驗證算法的正確性 這個階段分為以下兩個方面 一方面是 &#xff1a; 通過一些算法仿真工具來對 這個設計進行建模 — 算法原理建模 第二方面是 &#xff1a; 是 算…

hbase最新版本配置屬性

1. 說明 hbase的配置屬性大全 hbase版本基于 hbase-3.0.0-alpha-4 <?xml version"1.0"?> <?xml-stylesheet type"text/xsl" href"configuration.xsl"?> <!-- /*** Licensed to the Apache Software Foundation (ASF) under…

unity-firebase-Analytics分析庫對接后數據不顯示原因,及最終解決方法

自己記錄一下unity對接了 FirebaseAnalytics.unitypackage&#xff08;基于 firebase_unity_sdk_10.3.0 版本&#xff09; 庫后&#xff0c;數據不顯示的原因及最終顯示解決方法&#xff1a; 1. 代碼問題&#xff08;有可能是代碼寫的問題&#xff0c;正確的代碼如下&#xff…

OpenTiny Vue 組件庫適配微前端可能遇到的4個問題

本文由體驗技術團隊 TinyVue 項目成員岑灌銘同學創作。 前言 微前端是一種多個團隊通過獨立發布功能的方式來共同構建現代化 web 應用的技術手段及方法策略&#xff0c;每個應用可以選擇不同的技術棧&#xff0c;獨立開發、獨立部署。 TinyVue組件庫的跨技術棧能力與微前端十…

springboot207基于springboot的實習管理系統

實習管理系統的設計與實現 摘要 近年來&#xff0c;信息化管理行業的不斷興起&#xff0c;使得人們的日常生活越來越離不開計算機和互聯網技術。首先&#xff0c;根據收集到的用戶需求分析&#xff0c;對設計系統有一個初步的認識與了解&#xff0c;確定實習管理系統的總體功…

H5星空漸變效果引導頁源碼

H5星空漸變效果引導頁源碼 源碼介紹&#xff1a;H5星空漸變效果引導頁源碼是一款帶有星空漸變效果的源碼&#xff0c;內含3個可跳轉旗下站點按鈕。 下載地址&#xff1a; https://www.changyouzuhao.cn/8344.html

【海賊王的數據航海:利用數據結構成為數據海洋的霸主】時間復雜度 | 空間復雜度

目錄 1 -> 算法效率 1.1 -> 如何衡量一個算法的好壞&#xff1f; 1.2 -> 算法的復雜度 2 -> 時間復雜度 2.1 -> 時間復雜度的概念 2.2 -> 大O的漸進表示法 2.3 -> 常見時間復雜度計算 3 -> 空間復雜度 4 -> 常見復雜度對比 1 -> 算法效…

nginx前綴匹配

nginx location ^~ /task/ { # 這樣&#xff0c;當您訪問 http://hostname:port/task/test 時&#xff0c;# 請求會被轉發到 proxy_pass /test&#xff0c;注意 /task/ 前綴在轉發時被去掉了。proxy_pass http://192.168.86.199:8805/; proxy_set_header Host $host; proxy…

SQL注入漏洞解析

什么是SQL注入 原理&#xff1a; SQL注入即是指web應用程序對用戶輸入數據的合法性沒有判斷或過濾不嚴&#xff0c;攻擊者可以在web應用程序中事先定義好的查詢語句的結尾上添加額外的SQL語句&#xff0c;在管理員不知情的情況下實現非法操作&#xff0c;以此來實現欺騙數據庫服…

Ps下載安裝(專業圖像處理軟件Ps安裝包下載2024【Windows版】)

Adobe全家桶下載方式 將持續更新~ 文章目錄 Adobe全家桶下載方式Ps下載方式【點我獲取下載鏈接】我們的網站一、Ps簡介聲明 Ps下載方式【點我獲取下載鏈接】 迅雷網盤下載&#xff1a;迅雷網盤下載方式百度網盤下載&#xff1a;百度網盤下載方式夸克網盤下載&#xff1a;夸克…

【Vuforia+Unity】AR01實現單張多張圖片識別產生對應數字內容

1.官網注冊 Home | Engine Developer Portal 2.下載插件SDK&#xff0c;導入Unity 3.官網創建數據庫上傳圖片&#xff0c;官網處理成數據 下載好導入Unity&#xff01; 下載好導入Unity&#xff01; 下載好導入Unity&#xff01; 下載好導入Unity&#xff01; 4.在Unity設…

圖——最小生成樹實現(Kruskal算法,prime算法)

目錄 預備知識&#xff1a; 最小生成樹概念&#xff1a; Kruskal算法&#xff1a; 代碼實現如下&#xff1a; 測試&#xff1a; Prime算法 &#xff1a; 代碼實現如下&#xff1a; 測試&#xff1a; 結語&#xff1a; 預備知識&#xff1a; 連通圖&#xff1a;在無向圖…

Sora的第一波受害者出現了。

不知道大家最近除了被Sora刷屏之外&#xff0c;有沒有被這張圖刷屏 我只能說網友太強大了 說實話&#xff0c;我進入舟老師的直播間&#xff0c;每次都是還有3分鐘下播&#xff0c;還有6單就拍完 但是10分鐘后還在激情逼單&#xff0c;6單之后還有6單 也許在營銷學上&#x…

深入理解nginx的動態變量機制【上】

目錄 1. 概述2. 動態變量的分類2.1 按照變量名的確定性來分類2.2 按照變量聲明的來源分類2.3 按照是否可以變更分類2.4 按照是否可以緩存分類2.5 按照變量的索引方式分類 3. 變量的使用3.1 聲明一個變量3.1.1 支撐變量聲明的nginx關鍵結構體3.1.2 在配置文件中聲明3.1.3 在http…

C++筆記:OOP三大特性之多態

前言 本博客中的代碼和解釋都是在VS2019下的x86程序中進行的&#xff0c;涉及的指針都是 4 字節&#xff0c;如果要其他平臺下測試&#xff0c;部分代碼需要改動。比如&#xff1a;如果是x64程序&#xff0c;則需要考慮指針是8bytes問題等等。 文章目錄 前言一、多態的概念二、…

【C++初階】系統實現日期類

目錄 一.運算符重載實現各個接口 1.小于 (d1)<> 2.等于 (d1d2) 3.小于等于&#xff08;d1<d2&#xff09; 4.大于&#xff08;d1>d2&#xff09; 5.大于等于&#xff08;d1>d2&#xff09; 6.不等于&#xff08;d1!d2&#xff09; 7.日期天數 (1) 算…

mac圖片怎么轉換格式jpg?四種高效方法助你輕松搞定JPG格式

mac圖片怎么轉換格式jpg&#xff1f;在數字時代&#xff0c;圖片格式的轉換成為了我們日常操作中的一項基本技能。特別是在使用Mac操作系統的用戶中&#xff0c;如何將圖片轉換為JPG格式成為了一個熱門話題。本文將為你詳細介紹四種簡單實用的方法&#xff0c;幫助你在Mac上輕松…