GitBook

这里写图片描述 这里写图片描述

一开始觉得非常简单的一道题 结果写了这么多 发完代码再说话:

#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