zoukankan      html  css  js  c++  java
  • 力扣算法题—065有效数字

    验证给定的字符串是否为数字。

    例如:
    "0" => true
    " 0.1 " => true
    "abc" => false
    "1 a" => false
    "2e10" => true

    说明: 我们有意将问题陈述地比较模糊。在实现代码之前,你应当事先思考所有可能的情况。

    更新于 2015-02-10:
    C++函数的形式已经更新了。如果你仍然看见你的函数接收 const char * 类型的参数,请点击重载按钮重置你的代码。

    /***************待更新*************/

     1 class Solution {
     2 public:
     3     bool isNumber(string s) {
     4         bool num = false, numAfterE = true, dot = false, exp = false, sign = false;
     5         int n = s.size();
     6         for (int i = 0; i < n; ++i) {
     7             if (s[i] == ' ') {
     8                 if (i < n - 1 && s[i + 1] != ' ' && (num || dot || exp || sign)) return false;
     9             }
    10             else if (s[i] == '+' || s[i] == '-') {
    11                 if (i > 0 && s[i - 1] != 'e' && s[i - 1] != ' ') return false;
    12                 sign = true;
    13             }
    14             else if (s[i] >= '0' && s[i] <= '9') {
    15                 num = true;
    16                 numAfterE = true;
    17             }
    18             else if (s[i] == '.') {
    19                 if (dot || exp) return false;
    20                 dot = true;
    21             }
    22             else if (s[i] == 'e') {
    23                 if (exp || !num) return false;
    24                 exp = true;
    25                 numAfterE = false;
    26             }
    27             else return false;
    28         }
    29         return num && numAfterE;
    30     }
    31 };
  • 相关阅读:
    第四周总结&实验报告二
    实验报告 一
    周总结
    期末总结
    第十二周作业
    第十一周作业
    第十周作业
    第九周作业
    第八周作业
    第五周课程总结&试验报告(三)
  • 原文地址:https://www.cnblogs.com/zzw1024/p/10670946.html
Copyright © 2011-2022 走看看