一开始觉得非常简单的一道题
结果写了这么多
发完代码再说话:
#include<stdio.h>
#include<string.h>
int main() {
char A[200000],B[200000],M[200000];
int i,n,k,x;
memset(B,'\0',sizeof(A));
memset(B,'\0',sizeof(B));
while(scanf("%s %s",&A,&B)!=EOF) {
for(n=0; n<strlen(A); n++) {
if(A[n]!='0') {
break;
}
}
for(i=n,k=0; i<200000; i++,k++)
M[k]=A[i];
memset(A,'\0',sizeof(A));
for(i=0,n=strlen(M); i<strlen(M); i++) {
if(M[i]=='.') {
for(; n>0; n--) {
if(M[n-1]!='0'&&M[n-1]!='.') {
break;
}
if(M[n-1]=='.') {
M[n-1]='\0';
break;
}
}
}
}
for(i=0,k=0; i<n; i++,k++)
A[k]=M[i];
memset(M,'\0',sizeof(M));
for(n=0; n<strlen(B); n++) {
if(B[n]!='0') {
break;
}
}
for(i=n,k=0; i<200000; i++,k++)
M[k]=B[i];
memset(B,'\0',sizeof(B));
for(i=0,n=strlen(M); i<strlen(M); i++) {
if(M[i]=='.') {
for(; n>0; n--) {
if(M[n-1]!='0'&&M[n-1]!='.') {
break;
}
if(M[n-1]=='.') {
M[n-1]='\0';
break;
}
}
}
}
for(i=0,k=0; i<n; i++,k++)
B[k]=M[i];
if(strcmp(A,B))
printf("NO\n");
else {
printf("YES\n");
}
}
return 0;
}
还是放在杭电11页中的中文题
第一次感受到来自ACM满满的恶意……
当时天真的以为是这样的:
if(a==b)
printf("YES\n");
else
printf("NO\n");
但是!
在WA了之后
看了讨论区
感受到气氛诡异
学长又说这一题暂时不用做
甚至有的说他到现在都没AC这一题
但……初生牛犊不怕虎
最后AC的时候好高兴啊
最后发现一直卡住我的是数组初识化的问题-.-
思路都是对的
而且我的这个代码似乎还多考虑了一些不用考虑的问题
总之……
题目地址:【杭电】[2054]A==B