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

矩阵乘法计算量估算

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

def def_multi(l):
    count = 0
    while len(l) != 1:
        la = l.pop(0)
        lb = l.pop(0)
        count += la[0]*la[1]*lb[1]
        l.insert(0, [la[0], lb[1]])
    return count, l[0]


num = int(input())
s_matrix = []
for i in range(num):
    s_matrix.append(list(map(int, input().split())))

order = input()
# 注输入的计算法则最外部若没有括号,则需要套一层括号
if order[0] != '(' and order[-1] != ')':
    order = f'({order})'


ls = []
c = 0
for i in order:
    if i.isalpha():
        ls.append(s_matrix[c])
        c += 1
    else:
        ls.append(i)

result = 0
tp = []
for line in ls:
    if line != ')':
        tp.append(line)
    else:
        # 遇到右括号
        temp = []
        while tp[-1] != '(':
            # 从右往左遍历,直到遇到左括号为止,弹出最后一个数字并存储
            temp.insert(0, tp.pop())
        tp.pop()    # 弹出左括号
        # 将左括号和右括号之间的矩阵,进行乘法计算量估算
        temp_c, temp_l = def_multi(temp)
        # 将估算后的值存储至结果集
        result += temp_c
        # 将新得到的矩阵,放入栈
        tp.append(temp_l)

print(result)

# 本人菜鸟的初次献丑,望诸位大佬不喜勿喷,多担待下,谢谢各位

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-09 16:15
我应届生,去年10月份开始在这家公司实习,到今年10月份正好一年想(实习+试用期),在想要不要提前9月份就离职,这样好找工作些,但又差一个月满一年,又怕10月份国庆回来离职,容易错过了下半年的金九银十,到年底容易gap到年后
小破站_程序员YT:说这家公司不好吧,你干了快一年 说这家公司好吧,你刚毕业就想跑路说你不懂行情吧,你怕错过金九银十说 你懂行情吧,校招阶段在实习,毕业社招想换工作 哥们,我该怎么劝你留下来呢
应届生,你找到工作了吗
点赞 评论 收藏
分享
05-22 09:23
门头沟学院 Java
点赞 评论 收藏
分享
07-11 15:12
门头沟学院 Java
别人在上班,我就在工位上看看视频啥的,这正常吗?
程序员小白条:实习就是摸鱼,只是公司指标,把你进来了,可能那时候客户很多,但等你进来的时候,已经是淡季了,根本没多少需求,或者说根本不适合实习生去完成,因此你就每天干坐着就行,可能1,2个月都没需求
实习生的蛐蛐区
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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