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

矩阵乘法计算量估算

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

juzhenshu=int(input())
juzhenlist=[]
for i in range(juzhenshu):
    juzhen=list(map(int,input().split(" ")))
    juzhenlist.append(juzhen)
juzhenname="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
yunsuan1=list(input())
yunsuan2=[]
def zuili(yunsuan,c):
    bijiao=[]
    indexlist=[]
    for i in range(len(yunsuan)):
        if yunsuan[i].isalpha():
            indexlist.append(i)
            count=0
            for a in range(0,i):
                if yunsuan[a]=="(":
                    count+=1
            bijiao.append(count)
    index1=indexlist[bijiao.index(max(bijiao))]
    if c==yunsuan[index1]:
        return True
    else:
        return False

def chengfa(yunsuan):
    if len(yunsuan)==1:
        print(sum(yunsuan2))
        return 
    else:
        for i in range(len(yunsuan)):
            if i+1<len(yunsuan):
                if yunsuan[i].isalpha() and yunsuan[i+1].isalpha():
                    index1=juzhenname.index(yunsuan[i])
                    index2=juzhenname.index(yunsuan[i+1])
                    jieguo=juzhenlist[index1][0]*juzhenlist[index1][1]*juzhenlist[index2][1]
                    yunsuan2.append(jieguo)
                    juzhenlist[index1][1]=juzhenlist[index2][1]
                    yunsuan.pop(i+1)
                    chengfa(yunsuan)
        for i in range(len(yunsuan)):
            if i+1<len(yunsuan):
                if yunsuan[i].isalpha() and yunsuan[i-1]=="(" and yunsuan[i+1]==")" and zuili(yunsuan,yunsuan[i])==True:
                    yunsuan.pop(i-1)
                    yunsuan.pop(i)
                    chengfa(yunsuan)
            elif i<len(yunsuan):
                if yunsuan[i].isalpha() and yunsuan[i-1]=="(" and zuili(yunsuan,yunsuan[i])==True:
                    yunsuan.pop(i-1)
                    chengfa(yunsuan)
chengfa(yunsuan1)

全部评论

相关推荐

03-31 00:39
门头沟学院 C++
南岗痞子:不还有俩没结束吗
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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