首页 > 代码库 > Leetcode 49. Group Anagrams
Leetcode 49. Group Anagrams
Given an array of strings, group anagrams together.
For example, given: ["eat", "tea", "tan", "ate", "nat", "bat"]
,
Return:
[ ["ate", "eat","tea"], ["nat","tan"], ["bat"] ]
Note: All inputs will be in lower-case.
遍历一遍strs,碰到的每个字符串后先拆解成字符数组,然后按照字典顺序排序,之后组装为string类型的字符串
判断字符串是否出现在map中,若在,将拆解组装之前的字符串存入相应map 的 list中
map集合中各个key对应的value就是由相同字母组成的字符串
public class Solution { //第一次 一次提交 一次AC public List<List<String>> groupAnagrams(String[] strs) { List<List<String>> ansli = new ArrayList<List<String>>(); HashMap<String,List<String>> map = new HashMap<String,List<String>>(); for(int i=0;i<strs.length;i++){ char [] c = strs[i].toCharArray(); Arrays.sort(c); String str = String.valueOf(c); if( map.containsKey(str) ){ List<String> list = map.get( str ); list.add( strs[i] ); } else{ List<String> list = new ArrayList<String>(); ansli.add(list); //既然对于应用型数据添加的应用的地址,添加之后对于应用的修改,对所有有该引用类型的地值 //的,list都有效,就不用在通过遍历map 来实现了,替代了下方注释的部分 list.add( strs[i] ); map.put(str,list); } } //遍历map // Iterator<HashMap.Entry<String, List<String>>> entries = map.entrySet().iterator(); // while (entries.hasNext()) { // Map.Entry<String, List<String>> entry = entries.next(); // ansli.add(entry.getValue()); // } return ansli; } }
Leetcode 49. Group Anagrams
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。