作业帮 > 综合 > 作业

java排列组合的算法 譬如我有(A,B,C,D),我想输出的结果是

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/15 15:29:06
java排列组合的算法 譬如我有(A,B,C,D),我想输出的结果是
{A,B,C,D}
{AB},{AC},{AD},{BC},{BD},{CD}
{ABC},{ABD},{ACD},{BCD}
{ABCD}
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);
   }
  }
 }

纯手打 实验过了可以用..望采纳,有不懂的欢迎发问