题解 | #查找兄弟单词#
查找兄弟单词
https://www.nowcoder.com/practice/03ba8aeeef73400ca7a37a5f3370fe68
import java.awt.List; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.text.DateFormat; import java.text.DecimalFormat; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.temporal.ChronoUnit; import java.util.*; import java.util.function.Function; import java.util.stream.IntStream; import java.util.stream.Stream; import static java.util.Arrays.*; import static java.util.stream.Stream.*; public class Main { public static void main(String[] args) throws IOException { testTh(); } private static void testTh() throws IOException { BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); String str; while ((str = bf.readLine()) != null) { int first = str.indexOf(" "); String[] s = str.substring(first).split(" "); String[] strings = stream(s).skip(1).toArray(String[]::new); //下标 int pos = Integer.parseInt(strings[strings.length - 1]) - 1; String scale = strings[strings.length - 2]; ArrayList<String> al = new ArrayList<>(); char[] chars = scale.toCharArray(); HashMap<Character, Integer>hashMap = new HashMap<>(); for (int i = 0; i < chars.length; i++) { if (hashMap.containsKey(chars[i])) { Integer integer = hashMap.get(chars[i]); integer++; hashMap.put(chars[i], integer); } else { hashMap.put(chars[i], 1); } } for (int i = 0; i < strings.length - 2; i++) { if ( strings[i].length() != scale.length()) { continue; } if (scale.equals(strings[i])) { continue; } int flag = 0; for (int j = 0; j < scale.length(); j++) { if (!strings[i].contains(chars[j] + "")) { flag = 1; break; } int py = strings[i].length() - strings[i].replaceAll(chars[j] + "", "").length(); if (py != hashMap.get(chars[j])) { flag = 1; break; } } if (flag == 0) { al.add(strings[i]); } } Collections.sort(al); System.out.println(al.size()); if (al.size()!=0&&al.size()>=pos){ System.out.println(al.get(pos)); } } } }