1. 程式人生 > 實用技巧 >259【畢設課設】基於51微控制器的停車場車位引導指引系統設計

259【畢設課設】基於51微控制器的停車場車位引導指引系統設計

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

示例:

輸入: ["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); } }