题意
输入一个1-6位的字符串,且已经按小到大排列好,输出该字符串的全排列。
Sample Input
abc
Sample Output
abc acb bac bca cab cba
思路
因为题目输入已经是排列过后的了
所以可以用next_permutation直接输出,也可以用dfs算法通过字符交换来按顺序输出。
附上dfs的解题代码
#include <iostream>
#include <algorithm>
using namespace std;
void dfs(string s, int i)
{
if (i == s.size())
{
cout << s << endl;
return;
}
for (int j=i; j<s.size(); j++)
{
swap(s[i], s[j]);
dfs(s, i+1);
}
return;
}
int main()
{
string s;
cin >> s;
dfs(s,0);
}