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 };
  • 相关阅读:
    Linux内核RPC请求过程
    二分图
    Java实现 蓝桥杯 算法提高 合并石子
    Java实现 蓝桥杯 算法提高 合并石子
    Java实现 蓝桥杯 算法提高 摩尔斯电码
    Java实现 蓝桥杯 算法提高 摩尔斯电码
    Java实现 蓝桥杯 算法提高 文本加密
    Java实现 蓝桥杯 算法提高 文本加密
    Java蓝桥杯 算法提高 九宫格
    Java蓝桥杯 算法提高 九宫格
  • 原文地址:https://www.cnblogs.com/pengtangtang/p/12980117.html
Copyright © 2011-2022 走看看