题解 | #矩阵乘法计算量估算#

矩阵乘法计算量估算

https://www.nowcoder.com/practice/15e41630514445719a942e004edc0a5b

num = int(input())
dic = {}
start = ord("A")
for i in range(num):
    dic[chr(start + i)] = list(map(int, input().split()))

f_queue = []
algo = input()[1:-1]
# print(algo)
time = 0

for v in algo:
    if v == "(":
        pass
    elif v == ")":
        # f_queue last two
        # f_queue[len(f_queue)-2][0]
        time += (
            f_queue[len(f_queue) - 2][0]
            * f_queue[len(f_queue) - 1][1]
            * f_queue[len(f_queue) - 1][0]
        )
        new_l = [f_queue[len(f_queue) - 2][0], f_queue[len(f_queue) - 1][1]]
        f_queue.pop()
        f_queue.pop()
        f_queue.append(new_l)
    # elif bracket:
    #     f_queue.append(dic.get(v))
    else:
        f_queue.append(dic.get(v))

if len(f_queue) > 1:
    time += (
        f_queue[len(f_queue) - 2][0]
        * f_queue[len(f_queue) - 1][1]
        * f_queue[len(f_queue) - 1][0]
    )
    new_l = [f_queue[len(f_queue) - 2][0], f_queue[len(f_queue) - 1][1]]
    f_queue.pop()
    f_queue.pop()
    f_queue.append(new_l)

# print(f_queue)
print(time)

全部评论

相关推荐

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