Anagrams
来源:互联网 发布:单片机应用技术 编辑:程序博客网 时间:2024/05/01 06:31
Given an array of strings, return all groups of strings that are anagrams.
Note: All inputs will be in lower-case.
Analysis: Using a hash table groups all anagrams together. We can sort each string first and using such sorted string as the key to store it in the hash table.
public class Solution { public ArrayList<String> anagrams(String[] strs) { ArrayList<String> res = new ArrayList<String>(); HashMap<String, ArrayList<String>> map = new HashMap<String, ArrayList<String>>(); for(int i=0; i<strs.length; i++) { char[] charArray = strs[i].toCharArray(); Arrays.sort(charArray); String sortedString = new String(charArray); if(!map.containsKey(sortedString)) map.put(sortedString, new ArrayList<String>()); map.get(sortedString).add(strs[i]); } for(String s : map.keySet()) { if(map.get(s).size()>1) res.addAll(map.get(s)); // return groups only } return res; }}
0 0
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- anagrams
- Anagrams
- Anagrams
- Anagrams
- UVA 12174 - Shuffle(技巧枚举+预处理)
- 11th Ferbruary Codes
- 基类(base class)和派生类(derived class)指针在C++的相互转化
- URAL 1018 Binary Apple Tree 简单树形背包
- hdu1020 Encoding(A2B3C)
- Anagrams
- sdut2125 串结构练习——字符串匹配(strstr求子串)
- CF 219D 树形dp
- [leet code] Insertion Sort List
- Two Sum
- LeetCode - Combinations
- String to Integer
- 3Sum
- Valid Parentheses