Anagrams
Given an array of strings, return all groups of strings that are anagrams.
Note: All inputs will be in lower-case.
java代码:
public class Solution {
public List<String> anagrams(String[] strs) {
List<String> results = new ArrayList<String>();
HashMap<String, ArrayList<String>> map = new HashMap<String, ArrayList<String>>();
String temp;
ArrayList<String> list;
for (String s : strs) {
temp = sort(s);
if (!map.containsKey(temp)) {
list = new ArrayList<String>();
list.add(s);
map.put(temp, list);
} else {
list = (ArrayList<String>) map.get(temp);
list.add(s);
}
}
for (ArrayList<String> l : map.values()) {
if (l.size() < 2)
continue;
for (int i = 0; i < l.size(); i++)
results.add(l.get(i));
}
return results;
}
public String sort(String s) {
char[] chars = s.toCharArray();
Arrays.sort(chars);
return new String(chars);
}
}
public class Solution {
public List<String> anagrams(String[] strs) {
List<String> results = new ArrayList<String>();
HashMap<String, ArrayList<String>> map = new HashMap<String, ArrayList<String>>();
String temp;
ArrayList<String> list;
for (String s : strs) {
temp = sort(s);
if (!map.containsKey(temp)) {
list = new ArrayList<String>();
list.add(s);
map.put(temp, list);
} else {
list = (ArrayList<String>) map.get(temp);
list.add(s);
}
}
for (ArrayList<String> l : map.values()) {
if (l.size() < 2)
continue;
for (int i = 0; i < l.size(); i++)
results.add(l.get(i));
}
return results;
}
public String sort(String s) {
char[] chars = s.toCharArray();
Arrays.sort(chars);
return new String(chars);
}
}