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"));
// }
}
求变位词组合
最新推荐文章于 2022-08-26 13:21:57 发布