全排列之next permutation

2021-08-22 06:18:51 字數 689 閱讀 4825

給定乙個由不同的小寫字母組成的字串,輸出這個字串的所有全排列。 我們假設對於小寫字母有'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成立。

每組樣例輸出結束後要再輸出乙個回車。

示例1

複製

abc
複製

abc

acbbac

bcacab

cba

#include

using namespace std;

int main()

string a;

while(cin>>a)

sort(a.begin(),a.end());//題目的測試資料有問題,沒問題則不用

docout<}while(next_permutation(a.begin(),a.end()));

coutreturn 0;

STL函式之全排列next permutation

牛牛的作業薄上有乙個長度為 n 的排列 a,這個排列包含了從1到n的n個數,但是因為一些原因,其中有一些位置 不超過 10 個 看不清了,但是牛牛記得這個數列順序對的數量是 k,順序對是指滿足 i j 且 a i a j 的對數,請幫助牛牛計算出,符合這個要求的合法排列的數目。每個輸入包含乙個測試用...

STL庫全排列演算法next permutation

1.next permutation 函式原型 templatebool next permutation bidirectionaliterator first,bidirectionaliterator last templatebool next permutation bidirection...

DFS之全排列

c 實現 includeusing namespace std using std cout using std cin int n 3 int seat 3 三個位置,所放的數字先全部用0初始化 int mark 3 分別標記0,1,2三個陣列是否放置在了位置上,如已經放置值用1表示,沒放置用0。...