• hdu 2045


    这题不难,没有涉及算法。主要是熟练了一下指针。主要思想就是,设定一个规范模式,然后朝着这个规范模式化解,代码可以优化,有许多冗余 的地方。

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    using namespace std;
    const int maxn=1000000;
    char sa[maxn],sb[maxn];
    int main()
    {
    	while(scanf("%s %s",sa,sb)!=EOF)
    	{
    		getchar();
    		int len1=strlen(sa),len2=strlen(sb);
    		char * a=sa;
    		char * b=sb;
    		char * ta=a+len1-1;
    		char * tb=b+len2-1;
    		if(a[0]=='-'||b[0]=='-')
    		{
    			if(a[0]!=b[0])
    			{
    				cout<<"NO"<<endl;
    				continue;
    			}
    			else
    			{
    				a++;
    				b++;
    			}
    		}
    		while(*a=='0') a++;
    		while(*b=='0') b++;
    		if(*a=='.'||*a=='\0') 
    		{
    			a--;
    			*a='0';
    		}
    		if(*b=='.'||*b=='\0')
    		{
    			b--;
    			*b='0';
    		}
    		char * aa=a;
    		char * bb=b;
    		int flag1=0,flag2=0;
    		while(*aa!='\0') 
    		{
    			if(*aa=='.')
    			{
    				flag1=1;
    				break;
    			}
    			aa++;
    		}
    		while(*bb!='\0') 
    		{
    			if(*bb=='.')
    			{
    				flag2=1;
    				break;
    			}
    			bb++;
    		}
    		if(flag1)
    		{
    			while(*ta=='0'&&*ta!='.')
    				ta--;
    			if(*ta=='.') *ta='\0';
    			else *(ta+1)='\0';
    		}
    		if(flag2)
    		{
    			while(*tb=='0'&&*tb!='.') tb--;
    			if(*tb=='.') *tb='\0';
    			else *(tb+1)='\0';
    		}
    		if(strcmp(a,b)==0) cout<<"YES"<<endl;
    		else cout<<"NO"<<endl;
    	}
    	return 0;
    }
    		


  • 相关阅读:
    socket通信原理
    socket通信基础内容
    内核中断过程
    爬虫基础模块
    关于多个运算符的问题
    前戏
    js扩展
    加密
    django之form
    Django
  • 原文地址:https://www.cnblogs.com/lj030/p/3002273.html
Copyright © 2020-2023  润新知