您的位置:首页 > 其它

编写一个方法,对字符串进行排序,将所有变位词排在相邻的位置

2015-09-03 17:34 501 查看

编写一个方法,对字符串进行排序,将所有变位词排在相邻的位置。

注:变位词是指由变换某个词或短语的字母顺序构成的新的词或短语。例如:”triangle“是”integral“的变位词。






public class AnagramComparator implements Comparator<String>

{

public String sortChars(String s)

{

char [] content=s.toCharArray();

Array.sort(content);

return new String(content);

}

public int compare(String s1,String s2)

{

return sortChars(s1).compareTo(sortChars(s2));

}

}



public void sort(String[] array)

{

Hashtable<String,LinkedList<String>> hash=new Hashtable<String ,LinkedList<String>>();

//将同为变位词的单词分在同一组

for(String s:array)

{

String key=sortChars(s);

if(!hash.containsKey(key))

{

hash.put(key,new LinkedList<String>());

}

LinkedList<String> anagrams=hash.get(key);

anagrams.push(s);

}

/*

将散列表转换为数组

*/

int index=0;

for(String key:hash.keySet())

{

LinkedList<String> list=hash.get(key);

for(String t:list)

{

array[index]=t;

index++;

}

}

}

上面的算法是从桶排序法修改而来。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: