题解 | #查找兄弟单词#
查找兄弟单词
https://www.nowcoder.com/practice/03ba8aeeef73400ca7a37a5f3370fe68
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int num = in.nextInt();
String[] arr = new String[num];
for (int i = 0; i < num; i++) {
arr[i] = in.next();
}
String s = in.next();
int key = in.nextInt();
int k = 0;
ArrayList<String> list = new ArrayList<>();
for (int i = 0; i < arr.length; i++) {
if (check(arr[i], s)) {
list.add(arr[i]);
k++;
}
}
sort(list);
System.out.println(k);
if (list.size() > key) {
System.out.println(list.get(key - 1));
}
}
private static void sort(ArrayList<String> list) {
int size = list.size();
for (int i = 0; i < size; i++) {
for (int j = 0; j < size - 1 - i; j++) {
String s = list.get(j);
String s1 = list.get(j + 1);
if (s.compareTo(s1) > 0) {
list.set(j + 1, s);
list.set(j, s1);
}
}
}
}
private static boolean check(String s, String s1) {
if (s.equals(s1)) {
return false;
} else if (s.length() != s1.length()) {
return false;
} else {
int length1 = s1.length();
for (int i = 0; i < length1 - 1; i++) {
char c = s1.charAt(i);
s = s.replaceFirst(String.valueOf(c), "");
}
if (s.equals(String.valueOf(s1.charAt(length1 - 1)))) {
return true;
} else {
return false;
}
}
}
}
解题思路:
1, 第一步查找到所有的兄弟字符, 并进行记录
2, 第二步最兄弟字符集合进行排序
3, 最后进行输出
查看12道真题和解析