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):

 

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