全排列(DFS深搜)

给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列。

我们假设对于小写字母有 a

输入格式

输入只有一行,是一个由不同的小写字母组成的字符串,已知字符串的长度在 11 到 66 之间。

输出格式

输出这个字符串的所有排列方式,每行一个排列。

要求字母序比较小的排列在前面。

字母序如下定义:

已知 S=s1s2…sk,T=t1t2…tkS=s1s2…sk,T=t1t2…tk,则 S

数据范围

字符串的长度在 11 到 66 之间

输入样例:
abc
输出样例:
abc
acb
bac
bca
cab
cba
#include
using namespace std;
const int N = 10;
char str[N],path[N];
bool st[N];
int n;
void dfs(int u)
{
    if(u==n)  cout<>str;
    n=strlen(str);
    dfs(0);
    return 0;
}

 

你可能感兴趣的:(深度优先,算法)