Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Given an array of strings, return all groups of strings that are anagrams.
- Note: All inputs will be in lower-case.
- * @param strs
- * @return
- */
- public ArrayList<String> anagrams(String[] strs) {
- ArrayList<String> list = new ArrayList<String>();
- HashMap<String,ArrayList<String>> map = new HashMap<String,ArrayList<String>>();
- for(int i = 0; i<strs.length; i++){
- if(map.get(sortStr(strs[i]))==null){
- ArrayList<String> item = new ArrayList<String>();
- item.add(strs[i]);
- map.put(sortStr(strs[i]),item);
- }
- else{
- map.get(sortStr(strs[i])).add(strs[i]);
- }
- }
- for(Map.Entry<String,ArrayList<String>> entry:map.entrySet()){
- if(entry.getValue().size()>1){
- for(String str:entry.getValue()){
- list.add(str);
- }
- }
- }
- return list;
- }
- public String sortStr(String str){
- char[] sortedArray = str.toCharArray();
- Arrays.sort(sortedArray);
- return new String(sortedArray);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement