hdoj2054

坑爹题,WA了7次,终于AC了。。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char a[100000],b[100000],s1[100000],s2[100000];
void deal(char s[],char d[])
{
	int len=strlen(s);
	int i,j,k=0,flag=0;
	for(int t=0;t<=len-1;t++)
		if(s[t]=='.')
		{
			flag=1;
			break;
		}
	for(i=0;i<=len-1;i++)
	{
		if(s[i]=='-')
		{
			d[k++]='-';
			continue;
		}
		else if(s[i]=='+')
		{
			continue;
		}
		else if(s[i]=='0' && s[i+1]!='.')
			continue;
		else if(s[i]=='0' && s[i+1]=='.')
		{
				d[k++]=s[i];
				i++;
				d[k++]=s[i];
				i++;
				break;
		}
		else
			break;
	}
	j=len-1;
	if(flag)
		for(j=len-1;j>=0;j--)
		{
			if(s[j]=='0')
				continue;
			else if(s[j]=='.')
			{
				j--;
				break;
			}
			else
				break;
		}
	for(i=i;i<=j;i++)
		d[k++]=s[i];
	d[k++]='\0';
return;
}
int main()
{
	while(scanf("%s %s",a+1,b+1)!=EOF)
	{
		getchar();
		int i=0,j=0;
		a[0]='0';
		b[0]='0';
		deal(a,s1);
		deal(b,s2);
		int len1=strlen(s1);
		int len2=strlen(s2);
		for(i=0;i<=len1-1;i++)
		{
			if(!(s1[i]=='-'||s1[i]=='+'||s1[i]=='.'||s1[i]=='0'))
				break;
		}
		for(j=0;j<=len2-1;j++)
		{
			if(!(s2[j]=='-'||s2[j]=='+'||s2[j]=='.'||s2[j]=='0'))
				break;
		}
		if(i==len1 && j==len2)
		{
			printf("YES\n");
			continue;
		}
		if(len1!=len2)
			printf("NO\n");
		else
		{
			int flag=1;
			for(i=0;i<=len1;i++)
			{
				if(s1[i]!=s2[i])
				{
					flag=0;
					break;
				}
			}
			if(flag)
				printf("YES\n");
			else
				printf("NO\n");
		}
		
	
	}
//system("pause");
return 0;
}

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>