JavaStudy——0031:全排列
阿新 • • 發佈:2018-12-20
總時間限制: 1000ms 記憶體限制: 65536kB
描述 給定一個由不同的小寫字母組成的字串,輸出這個字串的所有全排列。 我們假設對於小寫字母有’a’ < ‘b’ < … < ‘y’ < ‘z’,而且給定的字串中的字母已經按照從小到大的順序排列。
輸入 輸入只有一行,是一個由不同的小寫字母組成的字串,已知字串的長度在1到6之間。 輸出 輸出這個字串的所有排列方式,每行一個排列。要求字母序比較小的排列在前面。字母序如下定義: 已知S = s1s2…sk , T = t1t2…tk,則S < T 等價於,存在p (1 <= p <= k),使得 s1 = t1, s2 = t2, …, sp - 1 = tp - 1, sp < tp成立。
樣例輸入
abc
樣例輸出
abc
acb
bac
bca
cab
cba
Accepted程式碼
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
String str=in.nextLine();
int len=str.length();
String result="";
permutation(str, result,len);
in.close();
}
static void permutation(String str,String result,int len) {
if(result.length()==len)
System.out.println(result);
else {
for(int i=0;i<str.length();i++) {
if(result.indexOf(str.charAt(i))<0)
permutation (str,result+str.charAt(i),len);
}
}
}
}