-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。什麼是你嘗試過的問題? –