leetcode-65. Valid Number

来源:互联网 发布:java学徒0基础骗局 编辑:程序博客网 时间:2024/06/14 16:45

leetcode-65. Valid Number

题目:

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.

这题就是需要考虑很多的情况.本身并不难.我也是试了很多次才AC。
基本思路就是分情况讨论。然后设定标志位来辅助判断。

public class Solution {    public boolean isNumber(String s) {        s = s.trim();        if(s.length()<1) return false;        boolean e=false,p=false,prenumber=false,sign=false;        for(int i = 0;i<s.length();i++){            if(s.charAt(i)=='-'||s.charAt(i)=='+'){                if(!sign && (i==0 || s.charAt(i-1)=='e' && i<s.length()-1 )) sign = true;                else return false;            }else if(s.charAt(i)=='.'){                if(s.length()!=1 && !p && !e) p = true;                else return false;            }else if(s.charAt(i)=='e'){                if(prenumber && !e && i<s.length()-1){                    e = true;                    sign=false;                }                else return false;            }else if(s.charAt(i)>='0' && s.charAt(i)<='9'){                if(!prenumber) prenumber=true;            }else {                return false;            }        }        if(prenumber)            return true;        else return false;    }}
0 0
原创粉丝点击