背景:1——WA:有一出少了break,还是惧怕时间没有自己出数据看看的错!
思路:fi全是奇数,输出-1,else if 全部偶数都大于最后一位数,让最右边的偶数和最后一位数交换;else 让最左边的比最后一位数打的偶数与最后一位数交换!
#include<stdio.h>
#include<string.h>
char str[100009];
int main(void){
while(~scanf("%s",str)){
int n=strlen(str);
bool ok=false;
for(int i=0;i < n-1;i++){if((str[i]-'0')%2 == 0) ok=true;}
if(!ok) printf("-1\n");
else{
for(int i=0;i < n-1;i++){
if((str[i]-'0')%2 == 0 && str[i] < str[n-1]){
char key=str[i];
str[i]=str[n-1];
str[n-1]=key;
ok=false;
break;
}
}
if(!ok) printf("%s\n",str);
else{
for(int i=n-2;i >= 0;i--){
if((str[i]-'0')%2 == 0){
char key=str[i];
str[i]=str[n-1];
str[n-1]=key;
printf("%s\n",str);
break;
}
}
}
}
}
return 0;
}