测试点1,我的答案和他一样怎么还WA????
查看原帖
测试点1,我的答案和他一样怎么还WA????
626810
PYthoNG楼主2022/5/22 12:10
#对比函数:遍历从k开始的每一个,若相等返回长度,不等-1
def duibi(x,k,y):
    s=0
    j=0
    ss=''
    if len(y)<len(x)-k:return -1,ss
    for i in range(k,len(x)):
        if x[i]==y[j]:
            j+=1
        else:return -1,ss
    while j<len(y):
        s+=1
        ss+=y[j]
        j+=1
    return s,ss



#数组:1记录单词n 2记录对应单词次数m
#全局变量记录长度,记录最大长度remax,
remax=0
ress=''

#dfs,
#1遍历单词尾到前,发现等于其他单词开头且次数《=2,则进入对比函数
#返回长度大小,-1则继续,反之以新的字符继续递归
def dfs(x,res,ss):
    global remax
    for i in range(len(x)-1,0,-1):
        for j in range(len(n)):
            if m[j]<2 and x[i]==n[j][0]:
                le,sss=duibi(x,i,n[j])
                
                if le==-1:
                    continue
                else:      
                    t=ss
                    ss+=sss
                       
                    res+=le
                    m[j]+=1
                    dfs(n[j],res,ss)
                    m[j]-=1
                    res-=le
                    
                    ss=t
                    
    if remax<res:
##        print(ss)
        remax=res
        return


q=int(input())
m=[0]*q
n=[input() for i in range(q)]
a=input()

for i in range(q):
    if n[i][0]==a:
        m[i]+=1
        dfs(n[i],len(n[i]),n[i])
        m[i]-=1

print(remax)
    

测试点1答案15,我的和它一样还是WA

2022/5/22 12:10
加载中...