题解 | #数据分类处理#
数据分类处理
https://www.nowcoder.com/practice/9a763ed59c7243bd8ab706b2da52b7fd
将序列R:5,6,3,6,3,0(第一个5表明后续有5个整数)排序去重后,可得0,3,6。
序列I没有包含0的元素。
序列I中包含3的元素有:I[0]的值为123、I[3]的值为453、I[7]的值为3、I[9]的值为453456、I[13]的值为453、I[14]的值为123。
序列I中包含6的元素有:I[1]的值为456、I[2]的值为786、I[4]的值为46、I[8]的值为665、I[9]的值为453456、I[11]的值为456、I[12]的值为786。
最后按题目要求的格式进行输出即可。
# 这个例子帮助理解题目了
# 这个例子给出了解题思路,
保存 I[0]的值为123 ,。。。。 在列表的第一层的第一个列表内
保存 I[1]的值为456 ,。。。。 在列表的第一层的第二个列表内
序列I没有包含0的元素。
序列I中包含3的元素有:I[0]的值为123、I[3]的值为453、I[7]的值为3、I[9]的值为453456、I[13]的值为453、I[14]的值为123。
序列I中包含6的元素有:I[1]的值为456、I[2]的值为786、I[4]的值为46、I[8]的值为665、I[9]的值为453456、I[11]的值为456、I[12]的值为786。
最后按题目要求的格式进行输出即可。
# 这个例子帮助理解题目了
# 这个例子给出了解题思路,
保存 I[0]的值为123 ,。。。。 在列表的第一层的第一个列表内
保存 I[1]的值为456 ,。。。。 在列表的第一层的第二个列表内
I = input().split() I = I[1:] R = input().split() Rnum = int(R[0]) Rint = sorted(map(int,R[1:])) Rstr = list(map(str,Rint)) logI = [] logR = [] lastr = '' for ri in Rstr: if ri == lastr: continue # R 去重 lastr = ri first = True for i,ii in enumerate(I): if ri in ii: if first: logR.append(ri) logI.append([]) first = False logI[-1].append(i) logI[-1].append(ii) num = len(logR) num += len(logI) for list1 in logI: num += len(list1) print(num,end=' ') for ri,listi in zip(logR,logI): print(ri,end=' ') print(len(listi)//2,end=' ')# 索引及其值 计算了两边 整除除2 for i in listi: print(i,end=' ')