zoukankan      html  css  js  c++  java
  • 52表示数值的字符串 记忆

    题目描述

    请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。
     
    思路:这题目非常繁琐;要考虑很多种情况,记下来。
    定义三个变量,dot,nume,num分别计算小数点的数目,e/E的数目,数字的数目,如果小数点出现在nume不为0之后,e出现在num为0之前,以及重点考虑e出现的时候,e之后会出现+-和数字,要考虑接下来的不能是字符串的结束。最后还要计算小数点和e的个数不能大于1,大于1就返回错误。
    容易错的地方是判断e之后要判断+-,这个时候要++idx,然后判断接下来是不是10e+,所以判断是否是结尾符号,再次++idx。
     
    class Solution {
    public:
        bool isNumeric(char* string){
            if(string == nullptr){
                return false;
            }
            int idx = 0;
            if(string[0] == '+' || string[0] == '-'){
                ++idx;
            }
            int dot = 0,nume = 0,num = 0;
            for(idx;idx < strlen(string);++idx){
                if(string[idx] == '.'){
                    if(nume >= 1){
                        return false;
                    }
                    ++dot;
                }  
                else if(string[idx] >= '0' && string[idx] <= '9'){
                    num = 1;
                }
                else if(string[idx] == 'e' || string[idx] == 'E'){
                    if(num == 0){
                        return false;
                    }
                    ++nume;
                    if(string[idx + 1] == '+' || string[idx + 1] == '-'){
                        ++idx;
                    }
                    if(string[idx + 1] == ''){
                       return false;
                    }
                } 
                else{
                    return false;
                }
            }
            if(dot > 1 || nume > 1){
                return false;
            }
            return true;
        }
    
    };
     
  • 相关阅读:
    kylin_学习_00_资源帖
    Saiku_学习_03_Saiku+Kylin构建多维分析OLAP平台
    Saiku_学习_02_Schema Workbench 开发mdx和模式文件
    Tomcat_总结_02_单机多实例
    Saiku_学习_01_saiku安装与运行
    【HDU】1693 Eat the Trees
    【Ural】1519. Formula 1
    蒟蒻修养之tc蓝名计划
    【UVa】11270 Tiling Dominoes
    【POJ】2406 Power Strings
  • 原文地址:https://www.cnblogs.com/dingxiaoqiang/p/8283506.html
Copyright © 2011-2022 走看看