解题思路
暴力解法:求出字符串的所有子序列,逐个判断子序列是否合法且不重复,返回满足条件的子序列即可。(填空题直接使用这个方法不浪费时间)
优化一点的解法:(只写了一部分。。。)
void test(String str){
rec(str,0,比'a'小的字符,new StringBuffered());
}
Set<String> set = new HashSet<>();
void rec(String str,int index,char lastSelectChar,StringBuffered temp){
if(index == str.length()){
set.add(temp.toString());
return;
}
for(int i = index;i < str.length();i++){
char ch = str.charAt(i);
if(ch > lastSelectChar){
temp.append(ch);
rec(str,i+1,ch,temp;);
temp.remove(temp.size()-1);
}
}
}