题目1369:字符串的排列
时间限制:
1 秒
内存限制:
32 兆
特殊判题:
否
提交:
2675
解决:
677
-
输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。
题目描述:
-
每个测试案例包括1行。
输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。
输入:
-
对应每组数据,按字典序输出所有排列。
输出:
-
abc
-
BCA
样例输入:
-
abc
-
acb
-
bac
-
bca
-
cab
-
cba
-
ABC
-
ACB
-
BAC
-
BCA
-
CAB
-
CBA
-
#include <iostream> #include <cstring> #include <algorithm> #include <cstdio> using namespace std; int main() { char str[10]; while(gets(str)) { int len=strlen(str); sort(str,str+len); do { cout<<str<<endl; }while(next_permutation(str,str+len));//发现了stl中的next_permutation()是用来计算某个字符串的下一个全排列的。还有一个prev_permutation(),其作用相反。 /*while(next_permutation(str,str+len)) cout<<str<<endl;*/ } return 0; }
-
1.注意按字典顺序;
-
2.
sort(str,str+len);将字符串排序;
-
3.stl中的next_permutation()是用来计算某个字符串的下一个全排列的。
样例输出:
版权声明:本文为say_it原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。