题解 | #数据分类处理#

数据分类处理

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

这可能是华为机试题描述最垃圾的一个了。。。坑太多

while True:
    try:
        I = [x for x in input().split()[1:]]
        R = sorted([int(x) for x in set(input().split()[1:]) if x > '0']) # R的序列要求是去除首位,且后续数字大于0,且要按照数字排序
        R = [str(x) for x in R] # 需要R数组从int转换为str,才方便进行比较
        result = []
        for r_index in range(len(R)):
            tmp_list = []
            for i_index in range(len(I)):
                if R[r_index] in I[i_index] and I[i_index] not in tmp_list:#当R元素字符串包含在I元素且tmp_list中没有该字符串时,加入到临时字符串,不然就会出现重复的I元素和其索引
                    tmp_list.append(i_index)
                    tmp_list.append(I[i_index])
            tmp_list.insert(0, len(tmp_list)//2) # 因为index+value到时数组长度乘2了,这个地方需要除2
            tmp_list.insert(0, R[r_index])
            if len(tmp_list) > 2:
                result += tmp_list 
            tmp_list.clear()
        result.insert(0, len(result))
        for num in result:
            print(num,end=' ')
        print()
    except EOFError:
        break



全部评论

相关推荐

拒绝无效加班的小师弟很中意你:求职意向没有,年龄、课程冗余信息可以删掉,需要提升项目经历。排版需要修改。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务