您的位置:首页 > 编程语言 > Java开发

leetcode-65. Valid Number

2016-12-13 19:44 357 查看

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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode java