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

九州編程
TA貢獻1785條經(jīng)驗 獲得超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); } } } } 純手打 實驗過了可以用..望采納,有不懂的歡迎發(fā)問 |

莫回無
TA貢獻1865條經(jīng)驗 獲得超7個贊
可以這樣,
1、取1個元素形成集合,輸出;
2、在前一步的基礎上加入一個不重復的元素,輸出所有可能性;
3、重復2步驟,直到所有元素都加進去了,輸出;
4、對輸出去重。
或者倒過來
1、把所有元素加入集合,輸出;
2、在前一步的基礎上移走一個元素,輸出所有可能性;
3、重復2步驟,直到?jīng)]有元素可以移走了,輸出;
4、對輸出去重
添加回答
舉報
0/150
提交
取消