题目描述:
给定一本英语单词词典,请找出所有的变位词集。
所谓的变位词是指,组成各个单词的字母完全相同,只是字母排列的顺序不同。
处理方法
编码
首先应该对每个单词进行编码,使互为变位词的单词获得相同编码。所以将单词内部进行排序,排序出来完全相同的单词自然便互为变位词。当然还需要保留原有的单词,所以用一个结构体来保存编码前和编码后的两个字符串。
|
|
排序
为了使互为变位词的单词可以被输出,最好的办法就是将他们聚拢在一起,然后到时输出时只需要在编码相同的情况下平移一段距离便可。所以将这些结构体按照上述编码后的字符串进行排序,最后得到的序列中,互为变位词的单词会被聚拢在一起。
输出
最后只需要遍历一次编码、排序后的结构体,在有重复编码时将原始字符串输出,没有便略过。
完整代码
|
|