zoukankan      html  css  js  c++  java
  • leetcode 65 Valid Number ----- java

    Validate if a given string is numeric.

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

    Note: It is intended for the problem statement to be ambiguous. You should gather all requirements up front before implementing one.

    这道题题目意思很简单,就是给定一个string,然后判断是否是一个数字,通过率相对很低了

    主要就是判断清楚所有情况。

    我在做的时候也是出了很多五错误,还是因为情况太多了,考虑的不周全。

    这道题其实应该考虑一个自动机的问题。

    public class Solution {
        public boolean isNumber(String s) {
            int len = s.length();     
            int flag1 = 0,flag2 = 0,flag3 = 0,flag4 = 0;
            int isnum = 0;
            for( int i = 0;i<len;i++){
                if( s.charAt(i) == ' ' && flag1 == 0 ){
                    while(i<len && s.charAt(i) == ' ' )
                        i++;
                    i--;
                    flag1 = 1;
                }
                else if( s.charAt(i) == '.' && flag2 == 0){
                    flag1 = 1;
                    flag2 = 1;
                }
                else if( (s.charAt(i) == '-' || s.charAt(i) == '+') && flag3 == 0 && isnum == 0 && flag2 == 0){
                    flag1 = 1;
                    flag3 = 1;
                }
                else if( s.charAt(i) == 'e' && flag4 == 0 && isnum == 1) {
                    flag1 = 1;
                    flag4 = 1;
                    flag2 = 1;
                    isnum = 0;
                    if( i<len-1 && (s.charAt(i+1) == '-' || s.charAt(i+1) == '+')){
                        i++;
                    }
                }
                else if( s.charAt(i) >= '0' && s.charAt(i) <= '9'){
                    flag1 = 1;
                    isnum = 1;
                }
                else if( s.charAt(i) == ' '){
                    while(i<len && s.charAt(i) == ' ' )
                        i++;
                    if( i == len && isnum == 1)
                        return true;
                    else
                        return false;
                }else
                    return false;
                
            }
            return isnum == 1?true:false;
            
            
            
        }
    }
  • 相关阅读:
    Gmail、还有人需要吗?
    Google 打不开
    不能忽视的Doctype
    ASP.NET2.0中用ICallbackEventHandler实现客户端与服务器端异步交互
    DataGrid常用小技巧
    ASP.NET程序安全性(三) 表单提交、过滤用户输入
    Objection!!!
    编写3dmax插件需要注意的几个问题
    又一个IGame的bug
    VC2010中的C++0x特性 Part 1:Lambdas,auto, static_assert
  • 原文地址:https://www.cnblogs.com/xiaoba1203/p/5949374.html
Copyright © 2011-2022 走看看