题解 | #查找兄弟单词#
查找兄弟单词
http://www.nowcoder.com/practice/03ba8aeeef73400ca7a37a5f3370fe68
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
import java.util.TreeMap;
public class HJ27 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
String[] s=input.nextLine().split(" ");
int n=Integer.valueOf(s[0]);//n
String[] s1=new String[n];//被查找的对象
for (int i = 1; i <=n; i++) {
s1[i-1]=s[i];
}
String s0=s[n+1];//查找对象
int k=Integer.valueOf(s[s.length-1]);//k
int count=0;
TreeMap<String,Integer> map1=new TreeMap();
TreeMap<String,Integer> map2=new TreeMap();
for (int i = 0; i < s0.length(); i++) {
String key0=s0.substring(i,i+1);
int num=1;
if (map1.containsKey(key0)) {
map1.put(key0, map1.get(key0)+1);
}else {
map1.put(key0, num);
}
}
// System.out.println(map1);
List<String> list=new ArrayList();
for (int j = 0; j < s1.length; j++) {
String string=s1[j];
map2.clear();
if (string.length()==s0.length()&&!(s0.equals(string))) {
for (int i = 0; i < string.length(); i++) {
String key2=string.substring(i,i+1);
int num=1;
if (map2.containsKey(key2)) {
map2.put(key2, map2.get(key2)+1);
}else {
map2.put(key2, num);
}
}
}
// System.out.println(map2);
if (map1.equals(map2)) {
count++;
list.add(string);
}
}
System.out.println(count);
Collections.sort(list);
// System.out.println(list);
if (k<=list.size()) {
System.out.println(list.get(k-1));
}
}
}
