求变位词组合
public class CharComp {/** * * 1.给单词排序 * 2.给排序后的单词设定标识符 * 3.通过标识符在map中查找对应的list,并将其追加其中(未排序的单词) * */public static Map<String,Set<String>> getGroupWords(String [] words){Map<String,Set<String>> map = new HashMap<String,Set<String>>();for(String word:words){String id = getID(word);Set<String> set = map.get(id);if(set==null){set =new TreeSet<String>();map.put(id, set);}set.add(word);}return map;}private static String getID(String word){char array []= word.toCharArray();String id="";Arrays.sort(array);int count = 0;char last ='.';for(char ch:array){if(last == ch||count==0){count++;last = ch;}else{id = id+last+count;count = 1;last = ch;}}if(!".".equals(last))id = id+last+count;return id;}//public static void main(String args[])//{//System.out.println(getID("mygodmygod"));//}}