题解 | #数据分类处理#

数据分类处理

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 = 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=' ')




全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务