不会,记录下来先😭
import java.util.HashSet;
import java.util.Set;
class Solution {
int max = 0;
Set<String> set = new HashSet<>();
public int maxUniqueSplit(String s) {
dfs(0, 0, 1, s);
return max;
}
private void dfs(int start, int end, int res, String s){
// 当end已经是最后一个字符,如果最后一个子字符串不重复,即找到一种切割方法
if(end == s.length() - 1){
if(set.contains(s.substring(start, end+1))){
return;
}else {
max = Math.max(max, res);
return;
}
}
String cur = s.substring(start, end+1);
// 选择在end位置后切
if(!set.contains(cur)){
set.add(cur);
dfs(end+1, end+1, res+1, s);
set.remove(cur);
}
// end位置后不切
dfs(start, end+1, res, s);
}
public static void main(String []args) {
Solution s = new Solution();
s.maxUniqueSplit("ababccc");
}
}