题解 | #查找兄弟单词#
查找兄弟单词
https://www.nowcoder.com/practice/03ba8aeeef73400ca7a37a5f3370fe68
import java.util.*;
import java.lang.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNext()) { // 注意 while 处理多个 case
String[] ins=in.nextLine().split(" ");
int n=Integer.parseInt(ins[0]);//取单词的个数
//取单词组
String[] ns=new String[n];
for(int i=1;i<=n;i++){
ns[i-1] = ins[i];
}
String x=ins[ins.length-2];//取单词x
int k=Integer.parseInt(ins[ins.length-1]);//取k
ArrayList<String> out=new ArrayList<>();//用于存放满足条件的兄弟单词
//将单词x和单词数组中的单词逐个比对(先转换为char数组然后排序,排序后的数组相等的即为兄弟单词),满足条件的放入out中
char[] xc=x.toCharArray();
for(int j=0;j<ns.length;j++){
char[] nsc=ns[j].toCharArray();
Arrays.sort(nsc);
Arrays.sort(xc);
if(nsc.length==xc.length && (!ns[j].equals(x))){
if(Arrays.equals(nsc,xc)) {
out.add(ns[j]);
}
}
}
Object[] outo=out.stream().sorted().toArray();//对兄弟单词字典排序
System.out.println(out.size());
if(k<=outo.length) {System.out.println(outo[k-1].toString());}
}
}
}
查看26道真题和解析