【LeetCode Hot100 | 每日刷題】字母異位詞分組

題目鏈接:49. 字母異位詞分組 - 力扣(LeetCode)

題目:

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

示例 1:

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

輸出:?[["bat"],["nat","tan"],["ate","eat","tea"]]

解釋:

  • 在 strs 中沒有字符串可以通過重新排列來形成?"bat"
  • 字符串?"nat"?和?"tan"?是字母異位詞,因為它們可以重新排列以形成彼此。
  • 字符串?"ate"?,"eat"?和?"tea"?是字母異位詞,因為它們可以重新排列以形成彼此。

示例 2:

輸入:?strs = [""]

輸出:?[[""]]

示例 3:

輸入:?strs = ["a"]

輸出:?[["a"]]

提示:

  • 1 <= strs.length <= 104
  • 0 <= strs[i].length <= 100
  • strs[i]?僅包含小寫字母

整體思路:

這道題需要用到hash表來解答,我用的是HashMap數據結構,遍歷字符數組將每一個字符串排序,并以這個排序好的字符串為key,字母組成相同的字符串放入該key的map集合中,最后返回結果就行。

Java代碼:

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

前置知識講解:?

Java中的getOrDefault方法:

getOrDefault是Java中Map接口的一個方法,它用于從Map中獲取指定鍵(key)對應的值(value)。如果Map中不存在該鍵,則返回一個預先設定的默認值。

V value = map.getOrDefault(Object key, V defaultValue);

解題步驟:

創建一個以String為key,List<String>為value的HashMap集合,遍歷strs字符串數組,調用toCharArray()方法將字符串轉換為字符數組,并調用Arrays的sort排序方法將字符數組排序,之后再將該字符數組轉換為字符串,調用Map的getOrDefault方法?,如果map集合中存在該key,那就返回該key對應的字符串集合,如果不存在就創建一個新的List集合,再將當前的str字符串填入返回的字符串集合或是新創建的list集合,更新一下map集合中該key的值,最后調用values()方法返回即可。

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

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

相關文章

docker 安裝windows

目錄 下載地址&#xff1a; 使用教程&#xff1a; docker compose 查看版本 測試啟動 hello-world 報錯1 The system cannot find the file specified&#xff1a; 檢查 Docker Desktop 是否運行中 報錯2HF_ENDPOINT 1. 臨時解決方案&#xff08;當前終端會話有效&…

docker compose 和build

目錄 docker compose 和build 的區別是什么&#xff1f; 核心差別&#xff1a; 1. docker build --platform linux/amd64 -f Dockerfile -t infiniflow/ragflow:nightly_lbg . 2. docker compose -f docker-compose-gpu.yml up -d 二者如何配合&#xff1f; 總結 docker …

裂變時刻:全球關稅重構下的券商交易系統躍遷路線圖(2025-2027)

——基于RWA清算、量子加密與實時非線性風控的下一代跨境基礎設施核心事件錨定&#xff1a;特朗普于7月7日對14國啟動分級關稅制裁&#xff08;日韓25%、東南亞30%-40%、金磚關聯國10%附加稅&#xff09;&#xff0c;引發日元兌美元暴跌至144.47、銅價單日跳漲3.2%、散戶單日交…

python爬蟲初入門——基本庫和寫入方法

1.準備環境 python環境&#xff1a;3.10 2.常用庫 1.請求庫&#xff1a;實現 HTTP 請求操作 requests&#xff1a;基于 urllib 編寫的&#xff0c;阻塞式 HTTP 請求庫&#xff0c;發出一個請求&#xff0c;一直等待服務器響應后&#xff0c;程序才能進行下一步處理。seleni…

Sonar掃描C#代碼配置

需要的工具 MSBuild、sonar-scanner-4.6.1.2450-windows、jdk1.8.0_181 下載地址&#xff1a;https://download.csdn.net/download/code12313/91315686 配置sonar的地址 一、環境變量配置 1.新建變量&#xff0c;nameSONAR_RUNNER_MSBUILD_HOME。valueD:\work\dev\dev_serve…

python 在運行時沒有加載修改后的版本

陳舊的Python字節碼 (.pyc 文件)&#xff1a;最常見的原因&#xff01;Python 會把你修改的 .py 文件編譯成 .pyc 字節碼來加速后續運行。有時&#xff0c;即使你修改了 .py 文件&#xff0c;系統可能仍然固執地加載舊的、未被刪除的 .pyc 文件。1. 用“硬編碼探針”強制驗證# …

【會員專享數據】2013-2024年我國省市縣三級逐年SO?數值數據(Shp/Excel格式)

之前我們分享過2013-2024年全國范圍逐年SO?柵格數據&#xff08;可查看之前的文章獲悉詳情&#xff09;&#xff01;該數據來源于韋晶博士、李占清教授團隊發布在國家青藏高原科學數據中心網站上的中國高分辨率高質量近地表空氣污染物數據集。很多小伙伴拿到數據后反饋柵格數據…

出現SSL連接錯誤的原因和解決方案

介紹 SSL連接錯誤是一種常見但關鍵的問題&#xff0c;這可能會阻止客戶端和服務器之間的安全連接。這些錯誤發生在TLS握手過程失敗時&#xff0c;這意味著客戶端和服務器無法建立安全的HTTPS連接。這種失敗可以在SSL/TLS協商過程中的任何階段發生&#xff0c;從初始協議協議到…

vue3 el-date-picker 保存后 日期減一問題

在使用 el-date-picker&#xff08;Element UI 的日期選擇器組件&#xff09;時&#xff0c;如果你發現日期在保存到后臺后自動減一&#xff0c;這通常是由于時區差異或者是時間格式解析問題導致的。這里有一些可能的解決方案&#xff1a;1. 檢查前端發送的日期格式確保你在前端…

什么是IP關聯?跨境賣家如何有效避免IP關聯?

一位深圳賣家曾管理30個亞馬遜店鋪賬號&#xff0c;某日清晨發現所有賬號被批量封禁——原因竟是平臺檢測到這些賬號長期共享同一IP地址&#xff0c;判定為“IP關聯”。而在跨境領域如亞馬遜、eBay、Shopee、TikTok等平臺&#xff09;&#xff0c;對于IP關聯的判定都是比較嚴格…

Redis集群方案——哨兵機制

Redis Sentinel&#xff08;哨兵&#xff09;是Redis官方提供的高可用性(HA)解決方案&#xff0c;用于管理Redis主從架構并實現自動故障轉移。一、集群結構和作用哨兵是一個分布式系統&#xff0c;由多個哨兵節點組成&#xff1a;哨兵的作用如下&#xff1a;監控&#xff1a;Se…

1.2.3_2 TCP/IP模型

在這個視頻中&#xff0c;我們要探討TCP/IP模型。對于TCP/IP模型考試的要求是這樣的&#xff0c;首先我們需要記住它各個層次的名稱和順序&#xff0c;以及我們需要了解TCP/IP 模型和OSI參考模型&#xff0c;它們在設計理念上有哪些區別&#xff0c;設計理念的區別又導致了TCP/…

EVOLVEpro安裝使用教程-蛋白質語言模型驅動的快速定向進化

寫在前面&#xff1a;蛋白質是生命活動的基石&#xff0c;其功能和序列之間的復雜關系長期以來吸引著科學家們的關注。盡管深度突變掃描等實驗方法可以解析蛋白質突變的功能影響&#xff0c;但這些技術的應用范圍局限于序列空間的一小部分。近年來&#xff0c;基于蛋白質語言模…

【Linux】Rocky Linux 清華鏡像源安裝 GitLab

使用清華鏡像源安裝 GitLab 地址&#xff1a;清華鏡像源 1. 搜索 gitlab&#xff0c;我們選擇 gitlab-ce 社區版進行安裝 2. 新建 /etc/yum.repos.d/gitlab-ce.repo&#xff0c;內容為 注意&#xff1a;el$releasever 是清華鏡像源內的文件夾版本 [gitlab-ce] nameGitlab C…

【龍澤科技】新能源汽車維護與動力蓄電池檢測仿真教學軟件【吉利幾何G6】

產品簡介新能源汽車維護與動力蓄電池檢測仿真教學軟件是依托《全國職業院校技能大賽》“新能源汽車維修”賽項中“新能源汽車維護與動力蓄電池檢測” 競賽模塊&#xff0c;自主開發的一款仿真教學軟件。軟件采用仿真技術對車輛進行指定維護作業&#xff0c;并對動力蓄電池總成進…

UE5多人MOBA+GAS 18、用對象池來設置小兵的隊伍的生成,為小兵設置一個目標從己方出生點攻打對方出生點,優化小兵的血條UI

文章目錄根據小兵隊伍更換小兵的皮膚管理小兵的生成使用對象池來管理小兵的生成為小兵設置一個目標小兵生成完整代碼調整一下小兵的UI根據小兵隊伍更換小兵的皮膚 懶得開UE了&#xff0c;增加一個Minion類繼承基類角色CCharacter // 幻雨喜歡小貓咪#pragma once#include &qu…

Clojure持久化數據結構的底層實現

文章目錄一、Clojure的持久化數據結構二、向量(Vector)/Map的底層結構?1. HAMT 哈希數組映射字典樹&#xff08;1&#xff09;簡介&#xff08;2&#xff09;HAMT 的核心思想&#xff08;3&#xff09;HAMT 的結構?a. 基本組成?b. 樹的分支因子?&#xff08;4&#xff09;H…

面試150 二叉樹展開為鏈表

思路 思路:使用列表存儲先序遍歷的相關節點。然后遍歷列表&#xff0c;分別獲取前驅節點和當前節點,將前驅節點的左指針指向空&#xff0c;前驅節點的右指針指向當前節點。 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, …

代碼隨想錄算法訓練營第十七天

目錄 LeetCode.654 最大二叉樹 題目鏈接 最大二叉樹 題解 解題思路 LeetCode.617 合并二叉樹 題目鏈接 合并二叉樹 題解 解題思路 LeetCode.700 二叉搜索樹中的搜索 題目鏈接 二叉搜索樹中的搜索 題解 解題思路 解題思路 LeetCode.98 驗證二叉搜索樹 題目鏈接 驗…

pycharm無法識別pip安裝的包

在使用conda創建一個新的環境后&#xff0c;有些包通過pip的方式安裝更方便有效&#xff0c;若在pip安裝后&#xff0c;遇到該環境沒有此包&#xff0c;或pycharm監測不到此包&#xff0c;通常是pip的環境指向有問題。 解決措施&#xff1a; # 首先檢查當前pip的指向 which pip…