1
class Solution:
2
def maxUniqueSplit(self, s: str) -> int:
3
ans, n = 0, len(s)
4

5
def dfs(i, cnt, visited):
6
nonlocal ans, n
7
if i == n:
8
ans = max(ans, cnt)
9
return # stop condition
10
for j in range(i + 1, n + 1):
11
if s[i:j] in visited:
12
continue # avoid re-visit/duplicates
13
visited.add(s[i:j]) # update visited set
14
dfs(j, cnt + 1, visited) # backtracking
15
visited.remove(s[i:j]) # recover visited set for next possibility
16

17
dfs(0, 0, set()) # function call
18
return ans

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0