Q25 LeetCode49 字母異位詞分組

清川1發表於2024-06-10

難 好好看看

 1 class Solution {
 2     public List<List<String>> groupAnagrams(String[] strs) {
 3          if (strs == null || strs.length == 0)
 4         return new ArrayList<>();
 5     //map中key儲存的是字串中字母排序後新的字串
 6     Map<String, List<String>> map = new HashMap<>();
 7     for (int i = 0; i < strs.length; i++) {
 8         //取出字串,然後把它轉化為字元陣列
 9         char[] c = strs[i].toCharArray();
10         //對字元陣列進行排序
11         Arrays.sort(c);
12         //排序之後再把它轉化為一個字串
13         String keyStr = String.valueOf(c);
14         //判斷map中有沒有這個字串,如果沒有這個字串,
15         //說明還沒有出現和這個字串一樣的字母異位詞,
16         //要新建一個list,把它存放到map中
17         if (!map.containsKey(keyStr))
18             map.put(keyStr, new ArrayList<>());
19         //把字串存放到對應的list中
20         map.get(keyStr).add(strs[i]);
21     }
22     //最後返回
23     return new ArrayList<>(map.values());
24     }
25 }

相關文章