题解 | #数据分类处理#

数据分类处理

http://www.nowcoder.com/practice/9a763ed59c7243bd8ab706b2da52b7fd

from collections import defaultdict#导入包
l=input().split(' ')[1:]
R=input().split(' ')[1:]
R = [int(x) for x in R]#要先改格式不然会按字符串排序规则排序,比如说排成[16,26,4]
r=sorted(list(set((R))),reverse=False)
r = [str(x) for x in r]#再改回来,因为后面按字符串规则查找对应片段
a=defaultdict(list)#用这个函数可以自定义一个值为列表的字典
n=0#初始值
for i in range(len(r)):
    for j in range(len(l)):
        if len(r[i]) > len(l[j]):
            continue
        else:
            for k in range(len(l[j])):
                if l[j][k:k+len(r[i])]==r[i]:
                    if j not in a[r[i]]:
                        a[r[i]].append(j)
                        #以配对成功的r[i]为键,向它的值列表中添加l中对应索引号
                        
n+=2*(len(a))#这里算的是r[i]的个数和用于表示与r[i]匹配成功的l数量的数字(比如说题目的输出中的首个6)
for i in range(len(a)):
    b=2*(len(a[list(a.keys())[i]]))
    n+=b       #是每个l的索引号和l本身,所以一个l对应两个数字
print(n,end=' ')
for i in range(len(a)):
    print(list(a.keys())[i],end=' ')
    print(len(a[list(a.keys())[i]]),end=' ')
    for j in a[list(a.keys())[i]]:
        print(j,end=' ')
        print(l[j],end=' ')#输出
全部评论
虽然有点傻瓜,但是我真棒!
点赞 回复 分享
发布于 2022-03-27 01:21
哥们你能写出这个东西也是有点东西
点赞 回复 分享
发布于 2022-10-11 13:55 美国

相关推荐

点赞 评论 收藏
分享
去B座二楼砸水泥地:不过也可以理解,这种应该没参加过秋招
点赞 评论 收藏
分享
2 1 评论
分享
牛客网
牛客企业服务