给定一本英语单词词典,请找出所有的变位词集。所谓的变位词是指,组成各个单词的字母完全相同,只是字母排列的顺序不同。
package com.udospace.demo;
import java.util.Arrays;
public class Main {
public static void main(String[] args){
String strings[] = {"pans","pots","opt","snap","stop","tops"};
String[] str = new String[strings.length];
char[] c = null;
String s = null;
for(int i=0; i<strings.length; i++){
c = strings[i].toCharArray();
Arrays.sort(c);
str[i] = String.valueOf(c);
}
for(int i=0; i<strings.length-1; i++){
for(int j=0; j<strings.length-i-1; j++){
if(str[j].compareTo(str[j+1]) > 0){
s = str[j];
str[j] = str[j+1];
str[j+1] = s;
s = strings[j];
strings[j] = strings[j+1];
strings[j+1] = s;
}
}
}
s = str[0];
System.out.print(strings[0]);
for(int i=1; i<strings.length; i++){
if(s.equals(str[i])){
System.out.print("\t" + strings[i]);
}else{
System.out.print("\n" + strings[i]);
}
s = str[i];
}
}
}