zoukankan      html  css  js  c++  java
  • 【leetcode刷题笔记】Valid Number

    Validate if a given string is numeric.

    Some examples:
    "0" => true
    " 0.1 " => true
    "abc" => false
    "1 a" => false
    "2e10" => true


    题解:题目不难,就是有点麻烦,要注意的地方很多,总结一下:

    1. 前面和后面的空格要用s.trim()去掉;
    2. 前导的'+'和'-'号需要忽略;
    3. 小数点只能出现一次,且不能出现在e后面;
    4. 指数符号e只能出现一次,而且它的前面和后面都要有数字;
    5. 除了前导的'+'和'-'外,还可以在符号e后面出现'+'和'-',但只能在e后面。

    代码如下:

     1 public class Solution {
     2     public boolean isNumber(String s) {
     3         if(s == null || s.length() == 0)
     4             return false;
     5         
     6         s = s.trim();
     7         if(s.length() == 0)
     8             return false;
     9         
    10         int i = 0;
    11         if(s.charAt(0) == '+' || s.charAt(0) == '-')
    12             i++;
    13        
    14         boolean hasDot = false;
    15         boolean hasExp = false;
    16         boolean num = false;
    17         
    18         while(i<s.length()){
    19             char now = s.charAt(i);
    20             if(now >= '0' && now <= '9')
    21             {
    22                 num = true;
    23             }
    24             else if(now == '.'){
    25                 if(hasDot || hasExp)
    26                     return false;
    27                 hasDot = true;
    28             }
    29             else if(now == 'e'){
    30                 if(hasExp || num == false)
    31                     return false;
    32                 hasExp = true;
    33                 num = false;
    34             }
    35             else if(now == '+' || now == '-'){
    36                 if(s.charAt(i-1) != 'e')
    37                     return false;
    38             }
    39             else
    40                 return false;
    41             i++;                
    42         }
    43         return num;
    44     }
    45 }
  • 相关阅读:
    Java后端WebSocket的Tomcat实现
    Shiro session和Spring session一样吗?
    HTTP请求类
    JSP页面中的时间显示问题
    Oracle在linux中相关设置操作
    关于BigDecimal类型在jsp页面中进行除法运算问题
    Spring与Redis的实现
    gson介绍
    busybox介绍
    vsftp中426 Failure writing network stream的错误解决
  • 原文地址:https://www.cnblogs.com/sunshineatnoon/p/3863777.html
Copyright © 2011-2022 走看看