【LeetCode笔记】49. 字母异位词分组(Java、字符串、哈希表)
生活随笔
收集整理的這篇文章主要介紹了
【LeetCode笔记】49. 字母异位词分组(Java、字符串、哈希表)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 題目描述
- 代碼 & 思路
題目描述
- 考慮:如何把字母相同、排列不同的字符串組合成一個相同的、獨一無二的東西?
- 嘗試1:使用ascii的和(不行,雖然說確實相同,但是獨一無二不滿足)
- 嘗試2:按序組合成字母 + 出現次數(可以,比如 aabcc => a2b1c2)
- 思路3:字母映射成質數,用質數的乘法求解(貌似可以,不過沒有實際嘗試)
代碼 & 思路
- 用 嘗試2:按序組合成字母 + 出現次數(可以,比如 aabcc => a2b1c2)的方法
- 遍歷字符串數組,逐個轉化成類似 a2b1c2 的形式。
- 通過 HashMap 來判斷是否出現過, O(1)
- 出現過,則放入對應的 ArrayList 中;
- 未出現,則新建 ArrayList,并且 put <string s, index> 到 HashMap 中(維護 hashmap)
總結
以上是生活随笔為你收集整理的【LeetCode笔记】49. 字母异位词分组(Java、字符串、哈希表)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【LeetCode笔记】剑指 Offer
- 下一篇: python安装gdal包_linux下