题解 | #查找兄弟单词#
查找兄弟单词
https://www.nowcoder.com/practice/03ba8aeeef73400ca7a37a5f3370fe68
import java.util.Scanner; import java.util.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int nums = in.nextInt(); String[] dir = new String[nums]; for (int i = 0; i < nums; i++) dir[i] = in.next(); String x = in.next(); int k = in.nextInt(); Arrays.sort(dir); List<String> brothers = new LinkedList<>(); TreeMap<Character, Integer> mp = new TreeMap<>(); for (int i = 0; i < x.length(); i++) { char ch = x.charAt(i); if (!mp.containsKey(ch)) mp.put(ch, 0); else { mp.put(ch, mp.get(ch) + 1); } } for (String s : dir) { if (s.length() != x.length() || s.equals(x)) continue; TreeMap<Character, Integer> bro_mp = new TreeMap<>(); for (int i = 0; i < s.length(); i++) { char ch = s.charAt(i); if (!bro_mp.containsKey(ch)) bro_mp.put(ch, 0); else { bro_mp.put(ch, bro_mp.get(ch) + 1); } } if(!bro_mp.equals(mp)) continue; brothers.add(s); } System.out.println(brothers.size()); if(k<=brothers.size()) System.out.println(brothers.get(k-1)); } }