链接
(今天睡到11点才起来,脑子还不清醒呀。哎…这么简单的一题)
优先找前面的字符替换替换后面最小的字符(有多个时,优先用后面)
#include<bits/stdc++.h>
using namespace std;
char s1[5010],s2[5010];
int main(){
int T;
scanf("%d",&T);
while(T--){
scanf("%s",s1);scanf("%s",s2);int ml=strlen(s1);
if(strcmp(s1,s2)<0) cout<<s1<<endl;
else {
int len=0;
int id=0,f=0;
for(int i=0;i<ml;++i){
char Min=s1[i];
len=ml-1;id=i;
while(len>i){
if(s1[len]<Min) Min=s1[len],id=len;
--len;
}
f=i;
if(id==i) continue;
else break;
}
swap(s1[f],s1[id]);
if(strcmp(s1,s2)<0) cout<<s1<<endl;
else cout<<"---"<<endl;
}
}
return 0;
}