1593. Split a String Into the Max Number of Unique Substrings (Medium) - TengnanYao/daily_leetcode GitHub Wiki

class Solution(object):
    def maxUniqueSplit(self, s):
        """
        :type s: str
        :rtype: int
        """
        self.result = 0
        def dfs(s, arr, count):
            if not s:
                self.result = max(self.result, count)
            for i in range(1, len(s) + 1):
                if s[ : i] not in arr:
                    dfs(s[i : ], arr + [s[ : i]], count + 1)
        dfs(s, [], 0)
        return self.result