题解 | #矩阵乘法计算量估算#
矩阵乘法计算量估算
https://www.nowcoder.com/practice/15e41630514445719a942e004edc0a5b
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
// 只保存每个矩阵的行列数据 列如矩阵是 5*4 (5行4列), 则stack = [[5,4],...]
const stack = []
// 保存矩阵的数量
let num = 0
// 保存所有矩阵行列数据
const arr = []
// 輸入行
let row = 0
rl.on('line', function (line) {
row++
if(row === 1){
num = Number(line)
}else if(row <= num + 1){
arr.push(line.split(' '))
}else {
// 根据计算法则开始计算计算量
let res = 0
for(let c of line){
// 左括号就跳过
if(c == '('){
continue
} else if(c == ')'){
// 遇到右括号就弹出两个矩阵数据进行计算,后一个矩阵与前一个矩阵
const back = stack.pop()
const front = stack.pop()
// 计算计算量
res += front[0] * back[0] * back[1]
const tmp = [front[0], back[1]]
stack.push(tmp)
}else {
// 遇到矩阵就将矩阵行列数据入栈
stack.push(arr.shift())
}
}
console.log(res)
}
});
