zoukankan      html  css  js  c++  java
  • [剑指Offer] 53.表示数值的字符串

    题目描述

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

    【思路】本题要注意考虑各种情况,下面代码有详解

     1 class Solution {
     2 public:
     3     bool isNumeric(char* string)
     4     {
     5         //标记数字、正负号、小数点、E或e是否出现
     6         bool num = false,sign = false,point = false,hasE = false;
     7         for(int i = 0;i < strlen(string);i ++){
     8             if(string[i] == '+' || string[i] == '-'){
     9                 //如果正负号前有数字或多余的正负号,返回false
    10                 if(sign == true || num == true) return false;
    11                 else sign = true;
    12             }else if(string[i] == '.'){
    13                 //如果小数点出现在e之后或有多余小数点,返回false
    14                 if(point == true || hasE == true) return false;
    15                 else point = true;
    16             }else if(string[i] == 'e' || string[i] == 'E'){
    17                 //如果e出现在末尾或有多余的e,返回false
    18                 if(hasE == true || i == strlen(string) - 1) return false;
    19                 else{
    20                     num = false;
    21                     sign = false;
    22                     hasE = true;
    23                 }
    24                 //如果出现非数字,返回false
    25             }else if(string[i] < '0' || string[i] > '9'){
    26                 return false;
    27             }else{//如果出现的是数字,将num赋为true
    28                 num = true;
    29             }
    30         }
    31         //若能扫描到字符串末尾,返回true
    32         return true;
    33     }
    34 
    35 };
  • 相关阅读:
    C#基本数据类型
    ASP.NET MVC 实现二级域名
    asp.net下通过泛解析和伪静态实现二级域名的实现方法
    Web Forms vs Web MVC
    WebForm页面生命周期及asp.net运行机制
    波函数坍缩
    whoami
    wstngfw中使用虚拟IP映射内网IP
    Thread-specific data(TSD)线程私有数据
    Libev库学习
  • 原文地址:https://www.cnblogs.com/lca1826/p/6559275.html
Copyright © 2011-2022 走看看