1066:生成序列

来源:互联网 发布:合工大与宣城政府知乎 编辑:程序博客网 时间:2024/06/06 10:46

题目描述

在计算机科学领域,如何高效生成指定的序列是一个非常重要的问题。现在给你一个字符串,且这个字符串内部的字符已经升序有序。请你找出由这些字符构成的所有的序列。

输入格式

输入的第一行是一个整数n,表示测试数据组数。
接下来n行,每行输入一个字符升序有序的字符串。字符串中只包含小写字母,长度不超过8。

输出

对于每组输入,输出由输入的字符串中的字符构成的所有序列,按字典序升序排列,结果中不能出现相同的序列。
每组输出后面跟一个空行。

样例输入

3
ab
abc
bca

样例输出

ab
ba

abc
acb
bac
bca
cab
cba

abc
acb
bac
bca
cab
cba

#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int main(){        char str[20];        int n,d;        scanf("%d",&n);        while(n--)        {                scanf("%s",str);                d=strlen(str);                sort(str,str+d);                do                {                        printf("%s\n",str);                }while(next_permutation(str,str+d));               printf("\n");        }        return 0;}           


 

0 0
原创粉丝点击