拼多多0802笔试第二题-半暴力解法

#coding=utf-8

lookup = [
    [2, 5, 3, 4],
    [4, 3, 5, 2],
    [0, 4, 1, 5],
    [5, 1, 4, 0],
    [2, 0, 3, 1],
    [1, 3, 0, 2]
]

def check_seq(a, b):
    biaobing = a[0]
    a_index = 0
    b_index = 0
    for i, item in enumerate(b):
        if item == biaobing:
            b_index = i
    for _ in range(4):
        if a[a_index] != b[b_index]:
            return False
        a_index += 1
        a_index %= 4
        b_index += 1
        b_index %= 4
    return True
def take_seq(a, index):
    return [a[i] for i in index]

def whether_same(a, b):
    a_seq = take_seq(a, lookup[0])
    b_index = 0
    for i, item in enumerate(b):
        if item == a[0]:
            b_index = i
    b_seq = take_seq(b, lookup[b_index])

    return check_seq(a_seq, b_seq)

def solution(shaizi):
    visited = [False for _ in range(len(shaizi))]
    classes = []
    for i in range(len(shaizi)):
        num_same = 1
        if visited[i]:
            continue
        else:
            visited[i] = True
        for j in range(len(shaizi)):
            if not visited[j] and whether_same(shaizi[i], shaizi[j]):
                num_same += 1
                visited[j] = True
        classes.append(num_same)
    classes = sorted(classes, reverse=True)
    print(len(classes))
    for item in classes:
        print('{} '.format(item), end='')

import sys
if __name__ == "__main__":
    # 读取第一行的n
    n = int(sys.stdin.readline().strip())
    shaizi = []
    for i in range(n):
        # 读取每一行
        line = sys.stdin.readline().strip()
        # 把每一行的数字分隔后转化成int列表
        values = list(map(int, line.split()))
        shaizi.append(values)
    solution(shaizi)
想了半天,终于想明白判断两个骰子是否相等怎么写。。
一开始还以为分组得用并查集,没想到暴力循环就过了
写的很着急 大家就不要吐槽代码写的啰嗦了 就写了10分钟
#拼多多#
全部评论
请问这个查找表 怎么回事呀,能写一下大致的思路吗
点赞 回复 分享
发布于 2020-08-09 19:27

相关推荐

不愿透露姓名的神秘牛友
今天 18:05
点赞 评论 收藏
分享
05-22 17:07
已编辑
门头沟学院 Java
程序员牛肉:都啥时候了还jb打蓝桥杯呢,有限找实习。
点赞 评论 收藏
分享
头顶尖尖的程序员:我也是面了三四次才放平心态的。准备好自我介绍,不一定要背熟,可以记事本写下来读。全程控制语速,所有问题都先思考几秒,不要急着答,不要打断面试官说话。
点赞 评论 收藏
分享
兄弟们,实习都是在接各种api,该怎么包装简历
仁者伍敌:感觉我自己做小项目也是各种api啊,我要怎么包装简历
点赞 评论 收藏
分享
评论
1
2
分享

创作者周榜

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