我下了几次用例,明明和用例是一样的,但就是过不了,有没有大佬解释一下?用python写的,真的搞不懂了
num = int(input())
word = []
wordLen = 0
for i in range(num):
word.append(input())
begin = input()
dfsFlag = [0 for i in range(num)]
maxLen = ""
def check(a, b):
flag = False
lens = -1
num = min(len(a), len(b))
for i in range(num):
if a[-1 - i:] == b[0:1 + i]:
lens = max(lens, i)
flag = True
break
return flag, lens
def mioDfs(nowStr):
global maxLen
for i in range(num):
if dfsFlag[i] == 2:
continue
flag, hc = check(nowStr, word[i])
if flag:
nowStr2 = nowStr + word[i][1 + hc:]
if len(nowStr2) == len(nowStr):
continue
else:
if len(nowStr2) > len(maxLen):
maxLen = nowStr2
dfsFlag[i] += 1
mioDfs(nowStr2)
dfsFlag[i] -= 1
mioDfs(begin)
print(len(maxLen))