Advertisement
Guest User

Untitled

a guest
Feb 23rd, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.18 KB | None | 0 0
  1.     /**
  2.      * Given an array of strings, return all groups of strings that are anagrams.
  3.         Note: All inputs will be in lower-case.
  4.      * @param strs
  5.      * @return
  6.      */
  7.     public ArrayList<String> anagrams(String[] strs) {
  8.         ArrayList<String> list = new ArrayList<String>();
  9.         HashMap<String,ArrayList<String>> map = new HashMap<String,ArrayList<String>>();
  10.         for(int i = 0; i<strs.length; i++){
  11.             if(map.get(sortStr(strs[i]))==null){
  12.                 ArrayList<String> item = new ArrayList<String>();
  13.                 item.add(strs[i]);
  14.                 map.put(sortStr(strs[i]),item);
  15.             }
  16.             else{
  17.                 map.get(sortStr(strs[i])).add(strs[i]);
  18.             }
  19.         }
  20.         for(Map.Entry<String,ArrayList<String>> entry:map.entrySet()){
  21.             if(entry.getValue().size()>1){
  22.                 for(String str:entry.getValue()){
  23.                     list.add(str);
  24.                 }
  25.             }
  26.         }
  27.         return list;
  28.     }
  29.    
  30.     public String sortStr(String str){
  31.         char[] sortedArray = str.toCharArray();
  32.         Arrays.sort(sortedArray);
  33.         return new String(sortedArray);
  34.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement