zoukankan      html  css  js  c++  java
  • HDU 2054 D A == B ? 字符串模拟

    题意

    判断A是否等于B

    思路

    觉得这道题目的处理好神奇,而且不需要考虑前导0的情况。

    比较直的思路会造成OLE。

    记住这些处理字符串的小技巧。

    具体思路写在注释上了。

    (但是比较奇怪的是明明说输入number,为啥还可以用%s输入???)

    AC代码

    #include<algorithm>
    #include<iostream>
    #include<string.h>
    #include<stdio.h>
    #include<math.h>
    #include<queue>
    #include<stack>
    #include<map>
    using namespace std;
    
    #define inf 0x3f3f3f3f
    
    char s[100000],a[100000],b[100000];
    
    void vis(char s[100000])
    //void vis(char s)//这样不对,传入单个字符
    {
        int l=strlen(s);
        int k=0,i,j;
        for(i=0;i<l;i++)//寻找是否存在小数点
        {
            if(s[i]=='.')
            {
                k=1;
                j=i;//记录小数点的下标
                break;
            }
        }
    
        if(k==1)//如果存在小数点
        {
            for(i=l-1;i>j;i--)//把小数点后面无效的零变成字符串结束的标志'\0'
            {
                if(s[i]=='0')
                {
                    s[i]='\0';
                    l--;
                }
                else
                    break;
            }
            if(s[l-1]=='.')//处理完到小数点后面一位的字符后,开始处理小数点
                s[l-1]='\0';//这种处理适用于6.00变为6.的这种情况
        }
        return ;
    }
    
    int main()
    {
    //    while(~scanf("%d %d",&a,&b))
    //    {
    //        if(a!=b)
    //            printf("NO\n");
    //        else
    //            printf("YES\n");
    //    }
    //单纯这样写,output limit exceed,且只能比较int范围内的数字大小
    //需要考虑小数点,找到小数点把最后面无效的零去掉再比较
    //默认前导0可以不考虑
        while(~scanf("%s %s",a,b))
        {
            vis(a);
            vis(b);//先对字符串a、b进行处理,找到小数点并且去掉后面无效的零
            int t=strcmp(a,b);
            if(t==0)
                printf("YES\n");
            else
                printf("NO\n");
            memset(a,'\0',sizeof(a));
            memset(b,'\0',sizeof(b));
        }
        return 0;
    }0
    
  • 相关阅读:
    Java三大框架
    单例模式和工厂模式(百度文库)
    使用java代码编辑oracle数据库
    extends 与implements的区别和用法
    介绍MVC编程架构模式
    接口具体是什么东西
    Servlet和JSP的本质和区别
    用户注册,登录,留言系统
    页面跳转的五种方法
    cookie的长度和限制数量
  • 原文地址:https://www.cnblogs.com/OFSHK/p/12650087.html
Copyright © 2011-2022 走看看