C++ next_permutation統計字符串的所有組合方式

        next_permutation()算法將區間內容轉化爲下一種唯一的排序方式。對於字符串,字符串按照遞增順序進行。如果成功,該算法返回true;如果區間已經處於最後的序列中,則返回false。要得到區間的所有組合順序,所以字符串要從最初(排完序)的順序開始,爲此本程序從sort後的字符序列開始。

#include<iostream>
#include<string>
#include<algorithm>

int main()
{
	using namespace std;
	string letters;
	cout << "Enter the letter grouping(quit to quit): ";
	while (cin >> letters && letters != "quit")
	{
		cout << "Permutations of " << letters << endl;
		sort(letters.begin(), letters.end());
		cout << letters << endl;
		while (next_permutation(letters.begin(), letters.end()))
			cout << letters << endl;
		cout << "Enter next sequence(quit to quit): ";
	}
	system("pause");
	return 0;
}
Enter the letter grouping(quit to quit): abbc
Permutations of abbc
abbc
abcb
acbb
babc
bacb
bbac
bbca
bcab
bcba
cabb
cbab
cbba
Enter next sequence(quit to quit):

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章