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

矩阵乘法计算量估算

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

count = int(input())
all_matrix_lis = []  # 放所有矩阵的行列数
calculations = 0  # 总计算次数初始设为 0
# 依次得到矩阵的行和列的数据作为列表保存到 all_matrix_lis 中
for i in range(count):
    all_matrix_lis.append(list(input().split()))
# 获取最后一行输入
order = input()
abc = []  # 存放即将计算的矩阵行列数
for i in order:
    if i == '(':
        pass
    elif i == ')':
        left_matrix = abc[-2]
        left_matrix_x = abc[-2][0]
        left_matrix_y = abc[-2][1]
        right_matrix = abc[-1]
        right_matrix_y = abc[-1][1]
        # 左侧矩阵的行数 右侧矩阵的列数 组成新的矩阵的行列数
        new_matrix = [left_matrix_x, right_matrix_y]
        # 两矩阵相乘的次数:a行数 * b列数 * a列数或b行数
        calculations += int(left_matrix_x) * int(right_matrix_y) * int(left_matrix_y)
        # 将运算后的矩阵去掉
        abc = abc[:-2]
        # 添加新生成的矩阵的行列数到 abc 列表中
        abc.append(new_matrix)
    else:
        # 非括号时,将 all_matrix_lis 中第一个矩阵的行列数添加到 abc 列表中,便于后面运算
        abc.append(all_matrix_lis[0])
        all_matrix_lis = all_matrix_lis[1:]
print(calculations)
全部评论

相关推荐

菜菜咪:1. 可以使用简历网站的模版,美观度会更好一点 2. 邮箱可以重新申请一个,或者用qq邮箱的别名,部分hr可能会不喜欢数字邮箱 3. 项目经历最好分点描述,类似的项目很多,可以参考一下别人怎么写的 4. 自我评价可加可不加,技术岗更看重技术。最后,加油,优秀士兵
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务