1. 程式人生 > 其它 >vie + element-ui 檔案 圖片上傳功能的實現

vie + element-ui 檔案 圖片上傳功能的實現

技術標籤:演算法資料結構Java字串資料結構雜湊

給定一個字串陣列,將字母異位詞組合在一起。字母異位詞指字母相同,但排列不同的字串。

示例:

輸入: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”]
輸出:
[
[“ate”,“eat”,“tea”],
[“nat”,“tan”],
[“bat”]
]

說明:

所有輸入均為小寫字母。
不考慮答案輸出的順序。

思路分析:排序
由於互為字母異位詞的兩個字串包含的字母相同,因此對兩個字串分別進行排序之後得到的字串一定是相同的,故可以將排序之後的字串作為雜湊表的鍵。

Java程式碼如下:

public class
Ai { public static void main(String[] args) { String[] strs = {"eat", "tea", "tan", "ate", "nat", "bat"}; System.out.println(groupAnagrams(strs)); } public static List<List<String>> groupAnagrams(String[
] strs) { Map<String,List<String>> map = new HashMap<>(); for (int i = 0; i < strs.length; i++) { byte[] temp = strs[i].getBytes(); Arrays.sort(temp); String key = new String(temp); List<String> list = map.getOrDefault
(key,new ArrayList<String>()); list.add(strs[i]); map.put(key,list); } return new ArrayList<>(map.values()); } }

輸出為:

[[eat, tea, ate], [bat], [tan, nat]]