题解 | #数据分类处理#大佬不愧是大佬

数据分类处理

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

# I->15: 123 456 786 453 46 7 5 3 665 453456 745 456 786 453 123
# R->5:   6 3 6 3 0 排序+去重后:0  3  6
# (1)先输出R<i>;3\3
# (2)再输出满足条件的I的个数;6\
# (3)然后输出满足条件的I在I序列中的位置索引(从0开始);0
# (4)最后再输出I。123

while True:
    try:
        a = input().split()[1:]
        # 去掉第一个,再去重,再转为int,再排序,再转为列表
        b = map(str, sorted(map(int, set(input().split()[1:]))))
        totalNum = 0  # 每个R(i)符合的I的个数
        res = ""
        for num in b:
            singleRes, count = "", 0
            # enumerate() 是一个 Python 内置函数,
            # 用于将一个可遍历的数据对象(如列表、元组或字符串)
            # 组合为一个索引序列,同时列出数据和数据下标,
            # 一般用在 for 循环当中。
            # 这个循环是逐个遍历第一行的数据
            for i, v in enumerate(a):  # i为下标,v为对应的数字,默认下标从0开始
                if num in v:
                    # singleRes是每个R(i)值得到的结果
                    singleRes += (
                        str(i) + " " + v + " "
                    )  # 输出要求是:每找到一个,下标和数字一起输出,singleRes可以更新
                    totalNum += 2  # 后续整数序列的个数:因为加了下标和I值
                    count += 1  # 计数:符合条件的I值的个数
            if count:  # count已经统计完第一个个R(i)的
                singleRes = num + " " + str(count) + " " + singleRes
                totalNum += 2  # 因为加了num和count
            res += singleRes
        print((str(totalNum) + " " + res).rstrip())

    except:
        break

全部评论

相关推荐

肥肠椒绿:双非本可不就犯天条了,双非本就应该打入无间地狱
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务