前端算法題解leetcode49-字母異位詞分組
題目
給你一個(gè)字符串?dāng)?shù)組,請(qǐng)你將 字母異位詞 組合在一起??梢园慈我忭樞蚍祷亟Y(jié)果列表。
字母異位詞 是由重新排列源單詞的字母得到的一個(gè)新單詞,所有源單詞中的字母通常恰好只用一次。
示例 1:
輸入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]
輸出: [["bat"],["nat","tan"],["ate","eat","tea"]
示例 2:
輸入: strs = [""]
輸出: [[""]]
示例 3:
輸入: strs = ["a"]
輸出: [["a"]]
提示:
1 <= strs.length <= 104
0 <= strs[i].length <= 100
strs[i]
僅包含小寫(xiě)字母
解題思路
首先我們來(lái)搞懂本題的題意,所謂 字母異位詞 就是一個(gè)單詞通過(guò)改變單詞內(nèi)字母的順序可以得到另一個(gè)單詞,那么這兩個(gè)單詞就是字母異位詞,例如 abc
和 cba
和 acb
。
接下來(lái)要解決的就是如何判斷單詞互為字母異位詞?
因?yàn)樽帜府愇辉~單詞內(nèi)字母及出現(xiàn)次數(shù)相同,所以我可以把單詞內(nèi)的字母排序,這樣互為字母異位詞的單詞排序后的結(jié)果就是相同的,把排序后結(jié)果相同的單詞的下標(biāo)記錄在一組,這樣互為字母異位詞的單詞就被收集到了一組。
最后遍歷得到的信息,將同組的下標(biāo)對(duì)應(yīng)的單詞放到一個(gè)數(shù)組,再將該數(shù)組插入到結(jié)果數(shù)組,最后返回結(jié)果數(shù)組即可。
代碼實(shí)現(xiàn)
var groupAnagrams = function(strs) { let _strs = [...strs] const res = [] const map = new Map() for(let i = 0;i<_strs.length;i++){ let str = _strs[i] str = str.split('').sort((a,b) => a.localeCompare(b)).join('') if(map.has(str)){ map.get(str).push(i) continue } map.set(str,[i]) } map.forEach(item => { const arr = [] for(let i = 0;i<item.length;i++){ arr.push(strs[item[i]]) } res.push(arr) }) return res }
至此我們就完成了 leetcode-49-字母異位詞分組,更多關(guān)于前端算法字母異位詞分組的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
JS前端模擬Excel條件格式實(shí)現(xiàn)數(shù)據(jù)條效果
這篇文章主要為大家介紹了JS前端模擬Excel條件格式實(shí)現(xiàn)數(shù)據(jù)條效果,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02Redux 和 Mobx的選擇問(wèn)題:讓你不再困惑!
Redux 和 Mobx 都是當(dāng)下比較火熱的數(shù)據(jù)流模型,本文就開(kāi)發(fā)者在面臨二者的選擇問(wèn)題時(shí),應(yīng)該如何選擇作了詳細(xì)介紹,需要的朋友可以參考下。2017-09-09微信小程序 兩種滑動(dòng)方式(橫向滑動(dòng),豎向滑動(dòng))詳細(xì)及實(shí)例代碼
這篇文章主要介紹了微信小程序 兩種滑動(dòng)方式詳細(xì)及實(shí)例代碼的相關(guān)資料,這里對(duì)橫向滑動(dòng)和豎向滑動(dòng)都做介紹,需要的朋友可以參考下2017-01-01微信小程序中使用Promise進(jìn)行異步流程處理的實(shí)例詳解
這篇文章主要介紹了微信小程序中使用Promise進(jìn)行異步流程處理的實(shí)例詳解的相關(guān)資料,這里詳細(xì)說(shuō)明該如何使用Promise 來(lái)進(jìn)行異步流程的處理,提供具體實(shí)現(xiàn)步驟,需要的朋友可以參考下2017-08-08詳解無(wú)界微前端是如何渲染子應(yīng)用的demo解析
這篇文章主要為大家介紹了詳解無(wú)界微前端是如何渲染子應(yīng)用demo解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04微信小程序 免費(fèi)SSL證書(shū)https、TLS版本問(wèn)題的解決辦法
這篇文章主要介紹了微信小程序 免費(fèi)SSL證書(shū)https、TLS版本問(wèn)題的解決辦法的相關(guān)資料,需要的朋友可以參考下2016-12-12Blob實(shí)現(xiàn)與File?DataURL?canvas相互轉(zhuǎn)換示例
這篇文章主要為大家介紹了Blob實(shí)現(xiàn)與File?DataURL?canvas相互轉(zhuǎn)換的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06