zoukankan      html  css  js  c++  java
  • 剑指offer52-表示数值的字符串

    请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。

    思路:排除法

        bool isNumeric(char* string)
        {
            //排除false的情况,如
            //不能有符号+-,e,E,小数点,数字之外的符号
            //e或E后必须跟着数字,e或E0或1个
            //小数点只有0或1个,e或E后不能有小数点
            //+-要么在数字开始0或1个,要么在E或e后第一位0或1个,
            bool decimal=false,hasE=false,sign=false;
            for(int i=0;i<strlen(string);i++)
            {
                if(string[i]=='+'||string[i]=='-')
                {

                    if(i==0||string[i-1]=='E'||string[i-1]=='e');
                        else return false;
                  
                }
                else if(string[i]=='E'||string[i]=='e')
                {
                    if(i==strlen(string)-1)return false;
                    if(hasE) return false;
                    hasE=true;
                }
                else if(string[i]=='.')
                {
                    if(decimal)return false;
                    if(hasE) return false;
                    decimal=true;
                    
                }
                else{
                    if(string[i]>'9'||string[i]<'0')
                    return false;
                }
            }
            return true;
        }

  • 相关阅读:
    ARMV8 datasheet学习笔记3:AArch64应用级体系结构之Memory order
    ARMV8 datasheet学习笔记3:AArch64应用级体系结构之Atomicity
    ARMV8 datasheet学习笔记3:AArch64应用级体系结构
    ARMV8 datasheet学习笔记2:概述
    最短路径
    网络流
    二分图
    zabbix 3.4新功能值预处理
    zabbix 3.4新功能值解析——Preprocessing预处理
    Zabbix监控windows的CPU利用率和其他资源
  • 原文地址:https://www.cnblogs.com/trouble-easy/p/12981362.html
Copyright © 2011-2022 走看看