题目:
给定一个字符串数组 arr,字符串 s 是将 arr 某一子序列字符串连接所得的字符串,如果 s 中的每一个字符都只出现过一次,那么它就是一个可行解。
请返回所有可行解 s 中最长长度。
解答:
class Solution:
def maxLength(self, arr: List[str]) -> int:
def validStr(string):
return len(set(string)) == len(string)
dp = []
for s in arr:
if not validStr(s):
continue
for s_ in list(dp):
if validStr(s_ + s):
dp.append(s_ + s)
dp.append(s)
return len(max(dp,key=len)) if dp else 0