题目:http://acm.hit.edu.cn/hoj/problem/view?id=1191
本题练习STL。生成排列有两个重要函数:
头文件: #include <algorithm>
bool next_permutation(begin, end);//改变区间内元素的顺序,产生下一个排列。
bool prev_permutation(begin, end);//产生前一个排列。
默认是从小到大排列的。
参考:http://leonard1853.iteye.com/blog/1450085
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <algorithm>
using namespace std;
char c[100];
int main()
{
#ifndef ONLINE_JUDGE
freopen("in.txt","r",stdin);
#endif
while(scanf(" %s",c)!=EOF && c[0]!='#')
{
int l = strlen(c);
if(next_permutation(c,c+l))
{
printf("%s\n",c);
}
else
{
printf("No Successor\n");
}
}
return 0;
}