吐槽两句,这题目看的人都晕了,理解能力真的逆天! 实际上就是去重、排序,遍历R。 import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); while(sc.hasNext()){ int n = sc.nextInt(); String[] r = new String[n]; for (int i=0;i<n;i++){ r[i] = sc.next(); } int m = sc.nextInt(); Set<Integer> si = new TreeSet(); for(int i=0;i<m;i++){ si.add(sc.nextInt()); } List<Integer> al = new ArrayList(); List<Integer> rt = new ArrayList(); for(int numi : si){ int count = 0; for(int i=0;i<r.length;i++){ if(r[i].contains(String.valueOf(numi))){ count++; al.add(i); al.add(Integer.valueOf(r[i])); } } if(count>0){ rt.add(numi); rt.add(count); rt.addAll(al); } al.clear(); } System.out.print(rt.size()+" "); for(Integer i:rt){ System.out.print(i+" "); } System.out.println(); } } }