给你一个字符串求出他的下一个全排列
可以用stl函数next_permutation;
不想用用了这个题就没意思了
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char str[60];
while(cin>>str,str[0]!='#')
{
int len=strlen(str);
int i,j;
int f=0;
for( i=len-1; i>=0; i--)
{
for( j=i-1; j>=0; j--)
if(str[i]>str[j])
{
f=1;
break;
}
if(f) break;
}
if(f==0)
{
cout<<"No Successor"<<endl;
continue;
}
else
{
for(int k=0; k<j; k++)
cout<<str[k];
cout<<str[i];
str[i]=126;
int n=j;
for(; j<len-1; j++)
{
char ch=126;
int f=j,k;
for( k=n; k<len; k++)
if(ch>str[k])
{
ch=str[k];
f=k;
}
str[f]=126;
if(f!=i)
cout<<ch;
}
cout<<endl;
}
}
return 0;
}