直接给几个test case说事儿
+ -号除了可以在string的开头,还可以紧接着e

Screen Shot 2018-01-25 at 11.32.23 PM.png
e的出现必须要在number之后,同时也可以出现在.后面(但必须有number)
46.e3 = 46000
- = 46
46.e3 = 46*10^3 = 46000

Screen Shot 2018-01-25 at 11.31.40 PM.png
class Solution {
public boolean isNumber(String s) {
if (s == null || s.length() == 0){
return false;
}
s = s.trim();
boolean seenE = false;
boolean seenDot = false;
boolean seenNum = false;
for (int i = 0; i < s.length(); i++){
char c = s.charAt(i);
if (c >= '0' && c <= '9'){
seenNum = true;
} else if (c == 'e'){
if (!seenNum || seenE){
return false;
}
seenE = true;
seenNum = false;
} else if (c == '+' || c == '-'){
if (i > 0 && s.charAt(i - 1) != 'e'){
return false;
}
} else if (c == '.'){
if (seenDot || seenE){
return false;
}
seenDot = true;
} else {
return false;
}
}
return seenNum;
}
}