题目描述
在计算机科学领域,如何高效生成指定的序列是一个非常重要的问题。现在给你一个字符串,且这个字符串内部的字符已经升序有序。请你找出由这些字符构成的所有的序列。
输入格式
输入的第一行是一个整数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;
}