259【畢設課設】基於51微控制器的停車場車位引導指引系統設計
阿新 • • 發佈:2020-12-17
題目:給定一個字串陣列,將字母異位詞組合在一起。字母異位詞指字母相同,但排列不同的字串。
示例:
輸入: ["eat", "tea", "tan", "ate", "nat", "bat"]
輸出:
[
["ate","eat","tea"],
["nat","tan"],
["bat"]
]
說明:
- 所有輸入均為小寫字母。
- 不考慮答案輸出的順序。
程式碼:
importjava.util.Arrays; classSolution{ publicList<List<String>>groupAnagrams(String[]strs){ varlist=newArrayList<List<String>>(); vararray=newArrayList<String>(); array.add(strs[0]); list.add(array); for(inti=1;i<strs.length;i++){ booleanbl=false; for(intj=0;j<list.size();j++){ if(match(list.get(j).get(0),strs[i])){ list.get(j).add(strs[i]); bl=true; break; } } if(bl){continue;} array=newArrayList<String>(); array.add(strs[i]); list.add(array); } returnlist; } //match方法比較串是否含有相同字元 先轉換成陣列(字元/位元組),再對陣列排序,再比較陣列 publicstaticbooleanmatch(Stringarr,Stringstr){ if(arr.length()!=str.length()){returnfalse;} byte[]b1=arr.getBytes(); byte[]b2=str.getBytes(); Arrays.sort(b1); Arrays.sort(b2); returnArrays.equals(b1,b2); } }