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 };
  • 相关阅读:
    Linux_WEB访问控制示例(使用IPADDR类型)
    基于多IP地址Web服务
    基于多端口的Web服务
    基于多主机的Web服务
    Linux_WEB服务基础概念
    Linux_配置认证访问FTP服务
    Linux_配置匿名访问FTP服务
    Linux_部署日志服务器
    Linux_日志管理理论概述
    微信小程序 radio 单选框
  • 原文地址:https://www.cnblogs.com/zzw1024/p/10670946.html
Copyright © 2011-2022 走看看