九度OJ (字符串排序)
题目链接地址:http://ac.jobdu.com/contest.php?cid=1039
用stl中的next_permutation()函数,它的作用是如果对于一个序列,存在按照字典排序后这个排列的下一个排列,那么就返回true且产生这个排列,否则返回false。调用之前先把一个序列排序使之为有序序列
代码1:
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; int main() { //freopen("12.txt","r",stdin); char str[10]; while(gets(str)) { sort(str,str+strlen(str)); puts(str); while(next_permutation(str,str+strlen(str))) puts(str); } return 0; }
代码2:用C++ 超时了
#include <iostream> #include <algorithm> #include <string> using namespace std; int main() { //freopen("12.txt","r",stdin); string str; while(cin >> str) { sort(str.begin(), str.end()); cout << str << endl; while (next_permutation(str.begin(), str.end())) { cout << str << endl; } } return 0; }