{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
提交
取消
