题目描述:
输入描述:
先输入字典中单词的个数n,再输入n个单词作为字典单词。
再输入一个单词,查找其在字典中兄弟单词的个数m
再输入数字k
输出描述:
根据输入,输出查找到的兄弟单词的个数m
然后输出查找到的兄弟单词的第k个单词。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Scanner;
public class Main
{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext())
{
int total = scanner.nextInt();
String[] words = new String[total];
for (int i = 0; i < total; i++)
words[i] = scanner.next();
String target = scanner.next();
int outIndex = scanner.nextInt();
int count = 0;
ArrayList<String> list = new ArrayList<>();
for (int i = 0; i < total; i++)
{
if (isNeighbor(words[i], target))
{
count++;
list.add(words[i]);
}
}
System.out.println(count);
if (count >= outIndex)
{
Collections.sort(list);
System.out.println(list.get(outIndex - 1));
}
}
}
public static boolean isNeighbor(String str1, String str2)
{
if (str1.equals(str2) || str1.length() != str2.length())
return false;
char[] arr1 = str1.toCharArray();
Arrays.sort(arr1);
char[] arr2 = str2.toCharArray();
Arrays.sort(arr2);
if (!(String.valueOf(arr1).equals(String.valueOf(arr2))))
return false;
return true;
}
}