-4
您好,我需要一个java progaram的排列和两个输入一个字符串和一个整数的组合。例如,如果我们将字符串设置为“abcd”,并将第二个输入设置为2,则输出应该为{ab,ac,ad,ba,bc,bd,ca,cb,cd,da,db,dc }如果我们给第二个输入为3,那么组合应该是这样{ABC,ABD,坏,BCD,驾驶室,CBD .........}java progaram为两个输入,一个字符串和一个整数排列
这是我曾尝试
package aaa;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.util.Scanner;
public class Main {
public static void main (String args[])
{
System.out.println("Please enter the string whose permutations we need to show ");
Scanner in = new Scanner(System.in);
String original=in.nextLine();
System.out.println("enter number");
int n=in.nextInt();
System.out.println("Results are :");
for (int i = 0; i < n; i++) {
permute1(original,n);
}
}
public static void permute1(String input, int x)
{
StringBuffer outputString = new StringBuffer();
String input1 = input.substring(0,x-1);
int input1Length = input1.length();
boolean[ ] used1 = new boolean[ input1Length ];
char[ ] in = input1.toCharArray();
doPermute (in, outputString, used1, input1Length, 0);
}
public static void doPermute (char[ ] in, StringBuffer outputString,
boolean[ ] used, int inputLength, int level)
{
if(level == inputLength) {
System.out.println (outputString.toString());
return;
}
for(int i = 0; i < inputLength; ++i)
{
if(used[i]) continue;
outputString.append(in[i]);
used[i] = true;
doPermute(in, outputString, used, inputLength, level + 1);
used[i] = false;
outputString.setLength( outputString.length() - 1);
}
}
}
帮我建议
欢迎来到SO。什么是你尝试过的问题? –