题解 CF12B 【Correct Solution?】
作者:互联网
思路:字符串处理 + 排序。
首先如果两个数长度不一样,又不准有前导零,这种情况直接WRONG_ANSWER
退出。
根据题意,我们把第一个数字按照每一位数的大小排序,因为不能 0 不能作为首位,所以我们找到最小的一个数字替换过来,如果和第二个数一样那肯定莫得问题。
当然要是两个数本来就是 0 ,那么肯定是可以的。
#include<bits/stdc++.h>
using namespace std;
int main() {
char a[25],b[25];
cin>>a>>b;
int lena=strlen(a),lenb=strlen(b);
if(lena!=lenb) {
puts("WRONG_ANSWER");
return 0;
}
if(a[0]==b[0]&&a[0]=='0') {
puts("OK");
return 0;
}
sort(a,a+lena);
int opt=0;
while(a[opt]=='0') opt++;
swap(a[0],a[opt]);
if(!strcmp(a,b)) puts("OK");
else puts("WRONG_ANSWER");
return 0;
}
标签:opt,lena,return,puts,int,题解,Solution,CF12B,ANSWER 来源: https://www.cnblogs.com/ahawzlc/p/12837321.html