1384 全排列
基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注
描述
给出一个字符串S(可能有重复的字符),按照字典序从小到大,输出S包括的字符组成的所有排列。例如:S = “1312”,输出为:
1123
1132
1213
1231
1312
1321
2113
2131
2311
3112
3121
3211
Input
输入一个字符串S(S的长度 <= 9,且只包括0 - 9的阿拉伯数字)
Output
输出S所包含的字符组成的所有排列
Input示例
1312
Output示例
1123
1132
1213
1231
1312
1321
2113
2131
2311
3112
3121
3211
题解
STL的应用。想到全排列就想到了STL中的 next_permutation() 函数。用字符串读取输入,用 sort() 对其进行排序,再用 next_permutation() 输出结果。代码如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
using namespace std ;
int main(){
string str ;
cin >> str ;
sort(str.begin() , str.end()) ;
cout << str << endl ;
while(next_permutation(str.begin() , str.end())){
for ( int i = 0 ; i < str.size() ; i ++ ){
cout << str[i] ;
}
cout << endl ;
}
return 0 ;
}