标签:des style blog http color io os ar for
| ID Codes |
Mean:
求出可重排列的下一个排列。
analyse:
直接用STL来实现就可。自己手动写了一个,并不复杂。
Time complexity: O(n^2)
Source code:
1.STL
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int main()
{
char s[55];
while(scanf("%s",s)!=EOF)
{
if(s[0]==‘#‘) break;
if(next_permutation(s,s+strlen(s))) printf("%s\n",s);
else printf("No Successor\n");
memset(s,0,sizeof(s));
}
return 0;
}
2.手写
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int main()
{
//freopen("a.txt","r",stdin);
char s[55];
while(scanf("%s",s),s[0]!=‘#‘)
{
int i,j,len(strlen(s)); // 涨姿势了
for(i=len-2; i>=0; i--)
if(s[i]<s[i+1])
break;
if(i<0) puts("No Successor");
else
{
for(j=i+1; i<len; j++)
if(s[i]>=s[j])
{
char c=s[i];
s[i]=s[j-1];
s[j-1]=c;
break;
}
sort(s+i+1,s+len);
puts(s);
}
}
return 0;
}
Brute Force & STL --- UVA 146 ID Codes
标签:des style blog http color io os ar for
原文地址:http://www.cnblogs.com/acmer-jsb/p/4050322.html