Python全WA 求助,前三个测试点自己测试过了
查看原帖
Python全WA 求助,前三个测试点自己测试过了
1051196
C_Wang楼主2023/8/24 00:15
n = (int)(input())
word = []
for i in range(n):
    bowl = input()
    word.append(bowl)
idx = input()

def check(str1,str2):
    lenk = min(len(str1),len(str2))
    for i in range(1,lenk):
        flag = 1
        for j in range(1,i+1):
            if(str1[len(str1) - 1 - i + j] != str2[j - 1]):
                flag = 0
        if(flag):
            return i

    return 0

isvis = [0 for i in range(n)]

ini = [x for x in word if x[0] == idx]

ans = 0

def dfs(str1,bowl):
    flag = True
    for i in range(n):
        if(check(str1,word[i]) and isvis[i] < 2):
            flag = False
            bowl += len(word[i]) - check(str1,word[i])
            isvis[i] += 1
            dfs(word[i],bowl)
            isvis[i] -= 1
            bowl -= len(word[i]) - check(str1, word[i])
    if(flag):
        global ans
        ans = max(ans,bowl)

for x in ini:
    isvis[word.index(x)] = 1
    dfs(x,len(x))

print(ans,end="\n")






几个数据
1
envelope
e
15

2
abababab
abababc
a
19

4
ABABABC
ABABABD
ABABABA
CDABABA
A
43






2023/8/24 00:15
加载中...