题解 | 数据分类处理
数据分类处理
https://www.nowcoder.com/practice/9a763ed59c7243bd8ab706b2da52b7fd
import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int dNum = in.nextInt();
int[] data = new int[dNum];
for(int i = 0; i < dNum; i++){
data[i] = in.nextInt();
}
int rNum = in.nextInt();
Map<Integer, ArrayList<Integer>> rule = new TreeMap<>(); //按key升序排列且key不重复,value是rule对应的数据下标
for (int i = 0; i < rNum; i++) {
rule.put(in.nextInt(), new ArrayList<>());
}
int sum = 0;
for (Integer key : rule.keySet()) {
boolean flag = false;
for (int i = 0; i < dNum; i++) { //遍历所有数据
String d = Integer.toString(data[i]);
String r = Integer.toString(key);
if (d.contains(r)){
rule.get(key).add(i);
sum += 2;
flag = true;
}
}
if (flag) { //有数据包含规则
sum += 2;
}
}
//输出
System.out.print(sum + " "); //总数
for (Integer key : rule.keySet()) { //规则
if (rule.get(key).size() == 0) continue; //没有对应规则和数据相符
System.out.print(key + " " + rule.get(key).size() + " "); //规则和对应条数
for (Integer index : rule.get(key)){
System.out.print(index + " " + data[index] + " ");
}
}
}
}


