寮步做网站,蔡甸网站建设,临沭网站建设,个人网站设计介绍文字给定一个字符串数组#xff0c;将字母异位词组合在一起。字母异位词指字母相同#xff0c;但排列不同的字符串。
示例:
输入: [eat, tea, tan, ate, nat, bat], 输出: [ [ate,将字母异位词组合在一起。字母异位词指字母相同但排列不同的字符串。
示例:
输入: [eat, tea, tan, ate, nat, bat], 输出: [ [ate,eat,tea], [nat,tan], [bat] ] 说明
所有输入均为小写字母。 不考虑答案输出的顺序。
思路如果他们是一类那排完序之后肯定都是是一个字符串。维护一个mapkey是排完序的value是这类词的list。
class Solution {public ListListString groupAnagrams(String[] strs) {HashMapString, ListString hash new HashMap();for (int i 0; i strs.length; i) {char[] s_arr strs[i].toCharArray();//排序Arrays.sort(s_arr);//映射到 keyString key String.valueOf(s_arr); if (hash.containsKey(key)) {//添加到对应的类中hash.get(key).add(strs[i]);} else {//弄个新的ListString temp new ArrayListString();temp.add(strs[i]);hash.put(key, temp);}}return new ArrayListListString(hash.values()); }
}