题解 | #数据分类处理#
数据分类处理
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 R_len = in.nextInt();
int[] R_arr = new int[R_len];
for (int i = 0; i < R_len; i++) {
R_arr[i] = in.nextInt();
}
int I_len = in.nextInt();
int[] I_arr = new int[I_len];
for (int i = 0; i < I_len; i++) {
I_arr[i] = in.nextInt();
}
Arrays.sort(I_arr);
int index = 0;
for (int i = 0; i < I_len; i++) {
if (i > 0 && I_arr[i] != I_arr[i - 1]) {
index++;
I_arr[index] = I_arr[i];
}
}
TreeMap<String, List<Integer>> map = new TreeMap<>();
for (int i = 0; i <= index; i++) {
String num_i = String.valueOf(I_arr[i]);
for (int j = 0; j < R_len; j++) {
String num_j = String.valueOf(R_arr[j]);
if (num_j.contains(num_i)) {
if (map.containsKey(num_i)) {
map.get(num_i).add(j);
} else {
List<Integer> list = new ArrayList<>();
list.add(j);
map.put(num_i, list);
}
}
}
}
StringBuilder res = new StringBuilder();
int count = 0;
for (int i = 0; i <= index; i++) {
String s_index = String.valueOf(I_arr[i]);
if (map.containsKey(s_index)) {
count++;
res.append(s_index + " ");
List<Integer> list = map.get(s_index);
count++;
res.append(list.size() + " ");
for (int index_j : list) {
count++;
res.append(index_j + " ");
count++;
res.append(R_arr[index_j] + " ");
}
}
}
System.out.println(String.valueOf(count) + " " + res.toString());
}
}
