题解 | #查找兄弟单词#
查找兄弟单词
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);
//接收n个字典单词
int n=in.nextInt();
String[] zidian=new String[n];
for(int i=0;i<n;i++){
zidian[i]=in.next();
}
String x=in.next();//接受x
int k=in.nextInt();
ArrayList<String> treeSet=new ArrayList<>();
//是否是兄弟单词满足两个条件:1.单词所含字母相同但是值不同
for(int i=0;i<n;i++){
if(!zidian[i].equals(x)&&isSame(zidian[i],x)){
treeSet.add(zidian[i]);
}
}
treeSet.sort(Comparator.naturalOrder());
System.out.println(treeSet.size());
int count=0;
for(String s:treeSet){
count++;
if(count==k)
System.out.print(s);
}
}
//判断两个字符串是否所含字母相同
public static boolean isSame(String s1,String s2){
ArrayList<Character> t1=new ArrayList<>();
ArrayList<Character> t2=new ArrayList<>();
char[] c1=s1.toCharArray();
char[] c2=s2.toCharArray();
for(int i=0;i<c1.length;i++){
t1.add(c1[i]);
}
for(int i=0;i<c2.length;i++){
t2.add(c2[i]);
}
t1.sort(Comparator.naturalOrder());
t2.sort(Comparator.naturalOrder());
if(t1.equals(t2)){
return true;
}
return false;
}
}


