{A,B,C,D}{AB},{AC},{AD},{BC},{BD},{CD}{ABC},{ABD},{ACD},{BCD}{ABCD}各位大神有会做的吗?...展开
2 回答

九州编程
TA贡献1785条经验 获得超4个赞
1234567891011121314151617181920212223242526272829303132333435363738 | import static java.lang.System.*; import java.util.*; public class Test{ public static void main(String...args){ ArrayList<String> l= new ArrayList<String>(); out.println( "请输入要排序的字母,输入$结束:" ); while ( true ){ Scanner sc= new Scanner(in); String str=sc.nextLine(); if (str.equals( "$" )) break ; else l.add(str); } String s= "" ; System.out.println(s.isEmpty()); f(s,l); } static void f(String s,ArrayList<String> l){ if (s.isEmpty()){ for ( int i= 0 ;i<l.size();i++){ out.println(s+l.get(i)); if (i==l.size()- 1 ) return ; f(s+l.get(i),l); } } else { char []c= new char [ 1 ]; c[ 0 ]=s.charAt(s.length()- 1 ); String str= new String(c); for ( int i=l.lastIndexOf(str);i<l.size();i++){ out.println(s+l.get(i+ 1 )); if (i==l.size()- 2 ) return ; f(s+l.get(i+ 1 ),l); } } } } 纯手打 实验过了可以用..望采纳,有不懂的欢迎发问 |

莫回无
TA贡献1865条经验 获得超7个赞
可以这样,
1、取1个元素形成集合,输出;
2、在前一步的基础上加入一个不重复的元素,输出所有可能性;
3、重复2步骤,直到所有元素都加进去了,输出;
4、对输出去重。
或者倒过来
1、把所有元素加入集合,输出;
2、在前一步的基础上移走一个元素,输出所有可能性;
3、重复2步骤,直到没有元素可以移走了,输出;
4、对输出去重
添加回答
举报
0/150
提交
取消