zoukankan      html  css  js  c++  java
  • 数字判断

    步骤:

    1)先去除字符串收尾的空格

    2)然后根据e划分指数和底数

    3)判断指数和底数是否合法即可

     1 class Solution {
     2 public:
     3     bool isNumber(string s) {
     4            //首先去掉首尾的空格
     5            int i = s.find_first_not_of(' ');
     6            if (i == string::npos)          return false;
     7            int j = s.find_last_not_of(' ');
     8            s = s.substr(i,j-i+1);
     9            if(s.empty())     return false;
    10 
    11            //根据e来划分底数和指数
    12            int e = s.find('e');
    13            
    14            //指数为空判断底数
    15            if (e == string::npos)     return judgeP(s);
    16            else
    17                  return judgeP(s.substr(0,e))&&judgeS(s.substr(e+1));
    18            //指数不为空,判断底数和指数
    19            
    20     } 
    21 private:
    22      bool  judgeP(string s){
    23      //判断底数是否合法
    24   bool  result = false,point = false;
    25       int n = s.size();
    26       for(int i = 0;i < n;i++) {
    27           if (s[i]=='+' || s[i]=='-'){//符号位不在第一位
    28                if(n!=0)  return false;
    29           }
    30           else if(s[i]=='.') {//多个小数点
    31               if(point)  return false;
    32               point = true;
    33          }
    34           else if(s[i]<'0' || s[i]>'0'){//非纯数字
    35                 return false;
    36           }
    37           else
    38                   return true;
    39 
    40          }
    41          return false;
    42      }
    43 bool  judgeS(string s) {
    44     //判断指数是否合法,注意指数不能出现小数点,出现任意非纯数字表示指数不合法
    45     bool result = false;
    46      for(int i = 0;i < s.size();i++){
    47          if(s[i]=='+' || s[i]=='-')//符号位不在第一位返回false
    48                if(i!=0)   return false;
    49           else if(s[i]<'0' || s[i]>'9')//非纯数字返回false
    50               return false;
    51           else
    52                return true;
    53      }
    54        return result;
    55 }
    56 };
  • 相关阅读:
    认识与设计Serverless(二)
    认识与设计Serverless(一)
    log4j2动态修改日志级别及拓展性使用
    log4j2高级配置(1)
    log4j2介绍及配置
    Java 并发编程篇
    JAVA多线程之volatile 与 synchronized 的比较
    springboot分布式锁学习
    springboot2连接多数据库mysql+oracle
    Mysql的分页查询优化
  • 原文地址:https://www.cnblogs.com/pengtangtang/p/12980117.html
Copyright © 2011-2022 走看看