總時間限制:
1000ms
記憶體限制:
65536kb
描述給定乙個由不同的小寫字母組成的字串,輸出這個字串的所有全排列。 我們假設對於小寫字母有'a' < 'b' < ... < 'y' < 'z',而且給定的字串中的字母已經按照從小到大的順序排列。
輸入輸入只有一行,是乙個由不同的小寫字母組成的字串,已知字串的長度在1到6之間。
輸出輸出這個字串的所有排列方式,每行乙個排列。要求字母序比較小的排列在前面。字母序如下定義:
已知s = s
1s2...s
k , t = t
1t2...t
k,則s < t 等價於,存在p (1 <= p <= k),使得
s1 = t
1, s
2 = t
2, ..., s
p - 1 = t
p - 1, s
p< t
p成立。
樣例輸入
abc
樣例輸出
abcacbbac
bcacab
cba
c++ stl中,有全排列函式
#include#include#include#include#include#includeusing namespace std;
char a[10];
int main()
while(next_permutation(a,a+n));
puts("");
}return 0;
}
另外也可以自己用遞迴實現這個演算法,比較難理解
#include #include #include #include using namespace std;
char str[10];
int len;
bool mark[10];
char prt[10];
//按順序列印字串中每乙個字元
void print()
void dfs(int s)
for(int i=0;i}
}int main()
C 實現全排列
給定乙個陣列,求這個陣列的全排列。列如 a 對陣列a求全排列 結題思路 將a陣列中的元素依次放在第乙個位置然,對剩下的元素進行全排列。剩下元素全排列依然是,將剩下的元素依次放在第乙個位置,對剩下的元素進行全排列。直到剩下的元素個數為乙個時,排列結束。這裡我給出固定元素1,對元素2 3 4進行全排列的...
全排列的實現(C)
找工作,筆試經常會出現乙個題,怎樣生成乙個集合內所有元素的全排列。剛開始的時候沒有覺得這是乙個難的問題。其實,當寫在試卷上,真的不太會,作答的過程感覺心裡沒有什麼底。回來後,查了一些資料,看了一些書,對這個問題有一定的認識,舉乙個例去清晰一下題目的意思,例子為 字符集的全排列 123,132,312...
全排列(遞迴) C 實現
給定乙個由不同的小寫字母組成的字串,輸出這個字串的所有全排列。我們假設對於小寫字母有 a b y z 而且給定的字串中的字母已經按照從小到大的順序排列。輸入只有一行,是乙個由不同的小寫字母組成的字串,已知字串的長度在1到6之間。輸出這個字串的所有排列方式,每行乙個排列。要求字母序比較小的排列在前面。...