本体需要注意的点,R排序时按数字大小排列,不能按照字符串排列(判断属于时 in 是按照字符串判断)
from collections import OrderedDict import sys def print_res(R_list, L_list): temp_list = [] for r in R_list: temp_r = [] for i,l in enumerate(L_list): if r in l: if r in temp_r: temp_r[1] += 1 temp_r[2].append((i, l)) else: temp_r = [r, 1, [(i,l)]] #[r , rcount, [(index, l)]] else: if temp_r != []: temp_list.append(temp_r) count = 0 for i in temp_list: for _ in i[2]: count += 2 count += 2 temp_list = sorted(temp_list, key=lambda x:int(x[0])) print(count, end=" ") for i in temp_list: print(i[0], end=" ") print(i[1], end=" ") for j in i[2]: print(j[0], end=" ") print(j[1], end=" ") input_info = sys.stdin.readlines() for i in range(0, len(input_info),2): l_list = input_info[i].split()[1:] l_list = [x.strip() for x in l_list] r_list = input_info[i+1].split()[1:] r_list = [x.strip() for x in r_list] r_list = list(sorted(list(set(r_list)))) print_res(r_list, l_list) print("")