1239. Maximum Length of a Concatenated String with Unique Characters (Medium) - TengnanYao/daily_leetcode GitHub Wiki

class Solution:
    def maxLength(self, arr: List[str]) -> int:
        arr = [word for word in arr if len(word) == len(set(word))]
        n = len(arr)
        self.result = 0
        def dfs(cur, i):
            if i < n:
                if all(c not in set(cur) for c in set(arr[i])):
                    dfs(cur + arr[i], i + 1)
                dfs(cur, i + 1)
            else:
                self.result = max(self.result, len(cur))
        for i in range(n):
            dfs("", i)
        return self.result