
代码:
from typing import List
def turePassword(wordList:List[str]) ->str:
wordList = list(set(wordList))
#排序先字符串长度,其次字典序
wordList.sort(key=lambda x :(len(x),x))
ans = ''
for i in range(len(wordList)-1,-1,-1):
flag = True
for j in range(1,len(wordList[i])):
if wordList[i][:j] not in wordList:
flag = False
break
if flag:
ans = wordList[i]
break
return ans
wordList = ['a','ab','abc','abcd','abcdef','nj','njk','n','njkl','z']
print(turePassword(wordList))

该代码定义了一个函数truePassword,它接收一个字符串列表,首先对列表进行去重和排序,然后从最长的字符串开始检查,看是否能由其他字符串组成。找到第一个满足条件的字符串即为最优密码。在给定的例子中,输入列表包含多个前缀字符串,输出的最优密码是njkl。
1228

被折叠的 条评论
为什么被折叠?



