描述
给出一个字符串数组S,找到其中所有的乱序字符串(Anagram)。如果一个字符串是乱序字符串,那么他存在一个字母集合相同,但顺序不同的字符串也在S中。
所有的字符串都只包含小写字母
样例
样例1:
输入:["lint", "intl", "inlt", "code"]
输出:["lint", "inlt", "intl"]
样例 2:
输入:["ab", "ba", "cd", "dc", "e"]
输出: ["ab", "ba", "cd", "dc"]
Scanner scanner = new Scanner(System.in);
String string = scanner.nextLine();
String[] sqil = string.split(" ");
char a[], b[];
String a1, b1;
int flag;
for (int i = 0; i < sqil.length ; i++) {
a = sqil[i].toCharArray();
Arrays.sort(a);
a1 = Arrays.toString(a).replaceAll(",\\s", ""); // replaceAll函数的第一个参数是正则表达式
flag = 0;
for (int j = 0; j < sqil.length; j++) {
if (i == j)
continue;
b = sqil[j].toCharArray();
Arrays.sort(b);
// Arrays.toString()函数打印出来数组是带有逗号的。[i, l, n, t]。 所以要将全部的逗号替换成空格
b1 = Arrays.toString(b).replaceAll(",\\s", ""); // replaceAll函数的第一个参数是正则表达式
if (a1.equals(b1)) {
flag = 1;
break;
}
}
if (flag == 1)
System.out.print(sqil[i] + " ");
}