首页 > 代码库 > Anagrams
Anagrams
题目
Given an array of strings, return all groups of strings that are anagrams.
Note: All inputs will be in lower-case.
方法
题目中是找出所有的字符串由相同的字符组成,只是顺序不同。public List<String> anagrams(String[] strs) { List<String> list = new ArrayList<String>(); if (strs == null || strs.length == 0) { return list; } int len = strs.length; HashMap<String, ArrayList<String>> hashMap = new HashMap<String, ArrayList<String>>(); for (int i = 0; i< len; i++) { char[] ch = strs[i].toCharArray(); Arrays.sort(ch); String str = new String(ch); if (hashMap.containsKey(str)) { hashMap.get(str).add(strs[i]); } else { ArrayList<String> arr = new ArrayList<String>(); arr.add(strs[i]); hashMap.put(str, arr); } } Iterator<ArrayList<String>> ite = hashMap.values().iterator(); while(ite.hasNext()) { ArrayList<String> item = ite.next(); if(item.size()>1) list.addAll(item); } return list; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。