题解 | #矩阵乘法计算量估算#可计算括号内有三矩阵的情况A(BCD)

矩阵乘法计算量估算

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

def wukh(ss): #无括号情况
    ls = []
    for i in range(len(ss)): #取得矩阵行列信息
        ls.append(jzs[zm.index(ss[i])])
    ccj = 0
    for i in range(0, len(ss)-1):
        ccj += ls[i][1] * ls[i+1][1]
    cc = ls[0][0] * ccj #计算这部分的乘法次数
    return cc

def youkh(fz1): #有括号时的情况
    global outs,fz
    ind2 = fz1.find(')')
    ind1 = fz1.rfind('(', 0, ind2)
    ss = fz1[ind1 + 1:ind2] # 截取括号内片段
    res = wukh(ss)
    outs += res
    zm.append(chr(ord(zm[-1]) + 1)) #添加新字母,取代括号部分
    jzs.append([jzs[zm.index(ss[0])][0], jzs[zm.index(ss[-1])][1]]) #新矩阵的行列
    A=fz1[ind1:ind2 + 1]
    fz=fz.replace(A,zm[-1]) # 用新矩阵替换括号内部分

n = int(input())
jzs = []
outs = 0
for i in range(n):
    jz = list(map(int, input().split()))
    jzs.append(jz) # 矩阵行列信息
fz = input()
zm = [] 
for i in fz:
    if i != '(' and i != ')' and i not in zm:
        zm.append(i)
zm = sorted(zm) # 字母对应矩阵信息
while '(' in fz: # 有括号一直去括号
    youkh(fz)
ress = wukh(fz) #去完括号计算最终值
outs += ress
print(outs)

全部评论

相关推荐

04-16 10:27
已编辑
美团_Saas_后端开发
今天周一休息,突发奇想写一篇阶段总结。如题,我已经去了一个和Java彻底毫无关联的行业。曾经我以为自己能在计算机行业发光发热,拿到美团offer那会感觉自己天都亮了。没想到刚入行一年多就当了逃兵。从最开始的热爱到现在一看到代码就厌恶,不知道自己经历了什么。所以我去干什么了?答案是:在成都当了租房销售。上班那会压力大了就念叨着去干租房中介,但是一直下不去这个决心,想着自己学了四年多的计算机知识,终究还是不甘心。终于在某一天准备八股文的时候,看着无数篇和工作内容关系不大的理论知识,那一刻下定决心,决定尝试一下销售行业,也算是给自己一个交代。后面阴差阳错的投了成都自如去当租房管家,没想到面试很顺利,在当天一百多个面试的人里面,我成为了为数不多通过的几个幸运儿之一。目前已经培训通过,正式入职,也开了单,有压力但是每天过得很开心,真心喜欢那种和人交流的感觉,哪怕是最后没有选择找我租房。说这些也是想告诉那些大三,大四正在找Java实习而焦虑的同学:你们现在还年轻,选择很多,容错率也很高,可以尽情去尝试自己喜欢的行业和工作。不用因为某一次的面试没通过或者简历石沉大海而焦虑,更不用因为身边人都在挤编程的独木桥就强迫自己跟风。也算是自己的碎碎念吧,也希望自己能在新的领域取得一点小成就。也祝牛油工作顺利!
沉淀小子:干啥都不丢人啊,生存是必须要的,销售很考验一个人综合素质能力的,好的销售人脉和资源可不比写字楼的白领差啊
点赞 评论 收藏
分享
评论
4
收藏
分享

创作者周榜

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