首页 > 代码库 > LeetCode 48 Anagrams
LeetCode 48 Anagrams
Given an array of strings, return all groups of strings that are anagrams.
Note: All inputs will be in lower-case.
他的意思就是回文构词法,即单词里的字母的种类和数目没有改变,只是改变了字母的排列顺序。
input= ["abc", "bca", "bac", "bbb", "bbca", "abcb"]
output=["abc", "bca", "bac", "bbca", "abcb"]
我们只需要一个HashMap就可以。
public class Solution { public List<String> anagrams(String[] strs) { ArrayList<String> result = new ArrayList<String>(); HashMap<String, String> hm = new HashMap<String, String>(); for (String str : strs) { char[] c = str.toCharArray(); Arrays.sort(c); if (!hm.containsKey(String.valueOf(c))) { hm.put(String.valueOf(c), str); } else { String s = hm.get(String.valueOf(c)); if (!result.contains(s))//某个回文序列第一次出现的单词, //我们并没有添加,现在补上 result.add(s); result.add(str); } } return result; } }
LeetCode 48 Anagrams
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。