题解 | #数据分类处理#
数据分类处理
https://www.nowcoder.com/practice/9a763ed59c7243bd8ab706b2da52b7fd
import java.math.*; import java.util.*; import java.util.concurrent.*; import java.util.concurrent.atomic.*; import java.util.stream.*; import java.util.regex.*; import java.util.function.*; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int countI = in.nextInt(); String[] arrI = new String[countI]; for (int i = 0; i < countI; i++) { arrI[i] = in.next(); } int countR = in.nextInt(); List<Integer> arrR = new ArrayList<>(); for (int i = 0; i < countR; i++) { arrR.add(in.nextInt()); } arrR = arrR.stream().distinct().sorted().collect(Collectors.toList()); List<String> list = new ArrayList<>(); for (int i = 0; i < arrR.size(); i++) { List<String> l = new ArrayList<>(); String rule = String.valueOf(arrR.get(i)); for (int j = 0; j < arrI.length; j++) { if (arrI[j].contains(rule)) { l.add(String.valueOf(j)); l.add(arrI[j]); } } if (l.size() > 0) { list.add(rule); list.add(String.valueOf(l.size() / 2)); list.addAll(l); } } System.out.printf("%d %s", list.size(), String.join(" ", list)); } }