1593. 拆分字符串使唯一子字符串的数目最大
Java:
class Solution {
int cnt;
int max;
Set<String> set;
private void dfs(String s, int pos, int len) {
if (pos == len) {
max = Math.max(max, cnt);
return;
}
for(int i = pos; i < len; ++i) {
String s1 = s.substring(pos, i + 1);
if (!set.contains(s1)) {
set.add(s1);
++cnt;
dfs(s, i + 1, len);
--cnt;
set.remove(s1);
}
}
}
public int maxUniqueSplit(String s) {
cnt = 0;
max = 0;
set = new HashSet<>();
dfs(s, 0, s.length());
return max;
}
}