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

矩阵乘法计算量估算

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

def cal(a,b): #2个矩阵的计算次数
    return a[0]*b[1]*a[1]

def cal2(x): #遍历所给公式,并返回计算结果
    pool = [] #存矩阵,以及中间计算结果的矩阵
    result = 0 #存计算次数
    for i in x:
        if i == '(':
            continue
        elif i == ')': #若为右括号,从pool取顶部2个矩阵计算,用result存计算次数,将结果矩阵压回pool顶部
            result += cal(pool[-2],pool[-1])
            tmp = [pool[-2][0],pool[-1][1]]
            pool = pool[:-2]
            pool.append(tmp)
        else: #若为矩阵,存入pool
            pool.append(array_pool[(ord(i)-65)])
    return result

while True:
    try:
        n = int(input())
        array_pool = [] #存所给矩阵
        for i in range(n):
            array = list(map(int,input().split()))
            array_pool.append(array)
        x = input()
        print(cal2(x))
    except:
        break

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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