题解 | #数据分类处理#
数据分类处理
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()); } }