/**
* poj1731 字典序(next_permutation)
* 其实用DFS也可以,一样用一维的标志位数组就可以标识字母是否出现过了,
* 在一级深度遍历完并恢复了v[i]=false之后,while(s[i] == s[i+1]) i++,把连续的相同字母都跳过就可以了,
* 而之前第一个字母DFS过的,就已经包含了需要的序列
* 当然,我这里用的next_permutation的方法就不需要这么麻烦
*/
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
char input[201];
int main(){
scanf("%s",input);
sort(input,input+strlen(input));
printf("%s\n",input);
while(next_permutation(input,input+strlen(input))){
printf("%s\n",input);
}
return 0;
}
poj1731 next_permutation
最新推荐文章于 2019-08-29 22:10:00 发布