题解 | 查找兄弟单词
查找兄弟单词
https://www.nowcoder.com/practice/03ba8aeeef73400ca7a37a5f3370fe68
import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
String[] str = new String[n];
for (int i = 0; i < n; i++) {
str[i] = in.next();
}
String x = in.next();
int k = in.nextInt();
List<String> bro = new ArrayList<>(); //按key自动升序
//判断是不是兄弟单词
int[] letter = new int[26]; //x中字母出现次数
for (int i = 0; i < x.length(); i++) {
letter[x.charAt(i)-'a']++;
}
String lNum = Arrays.toString(letter); //转换成字符串
for (int i = 0; i < n; i++) {
String s = str[i];
if (s.length() != x.length() || s.equals(x)) {
continue;
}
int[] sLetter = new int[26]; //兄弟串中字母出现的次数
for (int j = 0; j< s.length(); j++) {
sLetter[s.charAt(j) - 'a']++;
}
String sLNum = Arrays.toString(sLetter); //转换成字符串
if (sLNum.equals(lNum)) { //是兄弟单词
bro.add(s);
}
}
//升序排序List
Collections.sort(bro);
System.out.println(bro.size());
if (k <= bro.size()){
System.out.print(bro.get(k -1));
}
}
}
查看10道真题和解析