输入字符串"abc",输出组合a,b,c,ab,ac,bc,abc
class Main {
public static void main(String
[] args
){
String s
= new Scanner(System
.in
).next();
combine(s
);
}
public static void combine(String str
){
char[] in
=str
.toCharArray();
StringBuilder out
= new StringBuilder();
List
<String> list
= new ArrayList<>();
allCombine(in
,out
,0,list
);
list
.stream().forEach(s
-> System
.out
.print(s
+" "));
}
public static void allCombine(char[] ch
, StringBuilder sb
, int start
, List
<String> list
){
int len
=ch
.length
-1;
for(int i
=start
;i
<=len
;i
++){
sb
.append(ch
[i
]);
list
.add(sb
+"");
Collections
.sort(list
,(o1
, o2
) -> o1
.length() - o2
.length());
if(i
<len
){
allCombine(ch
,sb
,i
+1,list
);
}
sb
.setLength(sb
.length()-1);
}
}
}
转载请注明原文地址:https://ipadbbs.8miu.com/read-26413.html