题解 | #数据分类处理#
数据分类处理
https://www.nowcoder.com/practice/9a763ed59c7243bd8ab706b2da52b7fd
import java.util.Scanner; import java.util.TreeSet; import java.util.ArrayList; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 while (in.hasNextInt()) { // 注意 while 处理多个 case int ILength = in.nextInt(); int[] IArr = new int[ILength]; for (int i = 0; i < ILength; i++) { IArr[i] = in.nextInt(); } int RLength = in.nextInt(); int[] RArr = new int[RLength]; for (int i = 0; i < RLength; i++) { RArr[i] = in.nextInt(); } int[] newRArr = getRArr(RArr); ArrayList<String> output = new ArrayList<String>(); output = getResult(IArr, newRArr); for (int i = 0; i < output.size(); i++) { if (i < output.size() - 1) { System.out.print(output.get(i)); System.out.print(" "); } else { System.out.print(output.get(i)); } } // for (int i = 0; i < newRArr.length; i++) { // System.out.print(newRArr[i]); // System.out.print(" "); // } // System.out.print("\n"); // for (int i = 0; i < IArr.length; i++) { // System.out.print(IArr[i]); // System.out.print(" "); // } } } //返回去重排序的R序列 public static int[] getRArr(int[] input) { int length = input.length; TreeSet<Integer> TS = new TreeSet<Integer>(); for (int i = 0; i < length; i++) { TS.add(Integer.valueOf(input[i])); } int size = TS.size(); int[] result = new int[size]; int n = 0; for (Integer i : TS) { result[n] = i.intValue(); n++; } return result; } //输入IArr和去重排序后的RArr,返回目标ArrayList public static ArrayList<String> getResult(int[] I, int[] R) { ArrayList<String> result = new ArrayList<String>(); int Ilength = I.length; int Rlength = R.length; for (int i = 0; i < Rlength; i++) { int count = 0; String Rnum = String.valueOf(R[i]); for (int j = 0; j < Ilength; j++) { String Inum = String.valueOf(I[j]); if (Inum.contains(Rnum)) { if (count == 0) { result.add(Rnum); //System.out.println(Rnum); } count++; result.add(String.valueOf(j)); result.add(Inum); } } if (count != 0) { result.add(result.size() - count * 2, String.valueOf(count)); //插入符合个数 } } result.add(0, String.valueOf(result.size())); return result; } }