您的位置:首页 > 编程语言 > Java开发

leetcode JAVA Anagrams 难度系数3 3.15

2014-02-01 11:06 519 查看
Question:

Given an array of strings, return all groups of strings that are anagrams.

Note: All inputs will be in lower-case.
import java.util.Hashtable;
public class Solution {
public ArrayList<String> anagrams(String[] strs) {
ArrayList<String> results = new ArrayList<String>();
Hashtable<String, ArrayList<String>> ht = new Hashtable<String, ArrayList<String>>();
for (int i = 0; i < strs.length; i++) {
char[] c = strs[i].toCharArray();
Arrays.sort(c);
String newStrs = new String(c);
ArrayList<String> result = ht.get(newStrs);
if (result==null) {
result = new ArrayList<String>();
result.add(strs[i]);
ht.put(newStrs, result);
}else {
result.add(strs[i]);
}
}
Set<String> set = ht.keySet();
for(String str: set){
if (ht.get(str).size()>1) {
results.addAll(ht.get(str));
}
}
return results;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java leetcode 面试