| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
为啥我这个是WA?#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main(){
string s;
while (cin>>s && s!="#")
{
int i=s.size()-1;
bool b=true;
while (i>0)
{
i--;
if (s[i]<s[i+1])
{
b=false; break;
}
}
if (b)
cout<<"No Successor"<<endl;
else
{
sort(s.begin()+i, s.end());
int k=1;
while (s[i+k]==s[i]) k++;
swap(s[i],s[i+k]);
cout<<s<<endl;
}
}
return 0;
}
===================
#include "string.h"
#include "stdio.h"
int panduan(char a[3000])
{
int i;
for(i = strlen(a)-1;i != 0;i--)
{
if(a[i-1]<a[i])
return i;
}
return 0;
}
SubString(char *src, char *dst, int offset)
{
int i;
for(i=0;i < offset;i++)
{
dst[i]=src[i];
}
dst[i]='\0';
return 0;
}
rSubString(char *src, char *dst, int offset)
{
int i,a=0;
for(i=offset;i <= strlen(src);i++)
{
dst[a]=src[i];
a++;
}
return 0;
}
char min(char *src)
{
int i=0;char tempch=src[0];
for(;src[i]!='\0';i++)
if(tempch>src[i])
tempch=src[i];
return tempch;
}
sort(char *src)
{
int i=0,j=0;char temp;
for(;i<strlen(src);i++)
for(j=i+1;j<strlen(src);j++)
if(src[i]>src[j])
{
temp=src[i];
src[i]=src[j];
src[j]=temp;
}
}
int main(int argc, char* argv[])
{
char ch[3000],ch1[3000],ch2[3000],tem;
int i,j;
while(scanf("%s",ch),ch[0]!='#')
{
i=panduan(ch);
if(i==0)
{
printf("No Successor\n");
continue;
}
rSubString(ch,ch1,i);
tem=ch[i-1];
ch[i-1]=min(ch1);
for(j=0;ch1[j]!='\0';j++)
{
if(ch1[j]==ch[i-1])
{
ch1[j]=tem;
break;
}
}
SubString(ch,ch2,i);
sort(ch1);
strcat(ch2,ch1);
printf("%s\n",ch2);
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator