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

矩阵乘法计算量估算

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

# 从用户输入获取矩阵链的长度  
n = int(input())  
  
# 初始化一个空列表,用于存储矩阵的尺寸  
abs = []  
  
# 通过循环读取每个矩阵的尺寸  
for i in range(n):  
    a, b = list(map(int, input().split()))  
    # 将每个矩阵的尺寸添加到列表中  
    abs = abs + [(a, b)]  
  
# 从用户输入获取一个字符串,表示矩阵链的乘法顺序  
str1 = input()  
  
# 初始化一个临时变量,用于存储当前处理的矩阵的尺寸  
tmp_z = (0, 0)  
  
# 初始化计数器,用于计算总的乘法次数  
count = 0  
  
# 初始化一个栈,用于存储处理过程中的矩阵尺寸  
stack = []  
  
# 遍历输入的字符串,处理矩阵链的乘法  
for i in str1:  
    # 如果遇到左括号,忽略它  
    if i == '(':  
        continue  
    # 如果遇到右括号,执行矩阵乘法  
    elif i == ')':  
        # 弹出栈顶的两个矩阵尺寸  
        tmp_y = stack.pop()  
        tmp_x = stack.pop()  
        # 计算这两个矩阵乘法的乘法次数,并累加到计数器中  
        count += tmp_x[0]*tmp_x[1]*tmp_y[1]  
        # 将乘法结果的新矩阵尺寸压入栈中  
        stack.append((tmp_x[0], tmp_y[1]))  
    # 如果遇到的不是括号,表示是一个矩阵,将其尺寸从列表中取出并压入栈中  
    else:  
        stack.append(abs.pop(0))  
  
# 输出总的乘法次数  
print(count)

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-02 17:28
25届每天都在焦虑找工作的事情0offer情绪一直很低落硬撑着面了一个岗位岗位有应酬的成分面试的时候hr给我出各种场景题问的问题比较犀利 有点压力面的感觉感觉有点回答不上来本来就压抑的情绪瞬间爆发了呢一瞬间特别想哭觉得自己特别没用没绷住掉眼泪了事后想想觉得自己挺有病的 真的破大防了
喜欢唱跳rap小刺猬...:我觉得没关系吧,之前有一次面试leader给我压力面,我顶住了压力,结果入职的时候发现组里氛围很差,果断跑路。其实从面试就能大概看出组的情况,面试体验好的组倒是不一定好,但是面试体验不好的组。。。就很难说
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-01 10:56
点赞 评论 收藏
分享
06-17 21:57
门头沟学院 Java
白友:噗嗤,我发现有些人事就爱发这些,明明已读不回就行了,就是要恶心人
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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