leetcode-1593. 拆分字符串使唯一子字符串的数目最大

原始思路

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Solution {
List<String> ans = new ArrayList<>();
Set<String> set = new HashSet<>();
int result = 0;
public int maxUniqueSplit(String s) {
dfs(0, s);
return result;
}

public void dfs(int cur, String s) {
result = Math.max(result, ans.size());

for (int i = cur; i < s.length(); i++) {
String str = s.substring(cur, i + 1);
if (set.contains(str)) {
continue;
}
ans.add(str);
set.add(str);
dfs(i + 1, s);
ans.remove(ans.size() - 1);
set.remove(str);
}
}
}