题解 | #查找兄弟单词#
查找兄弟单词
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)); } } }