解题思路:
是后面discussion的一个答案,感觉写的很简洁
提交代码:
class Solution{
public boolean isNumber(String s) {
boolean isE=false,isDot=false,isDigit=false;
s=s.trim();
for(int i=0;i<s.length();i++) {
char c=s.charAt(i);
if(c=='e') {
if(!isDigit||isE) return false;
isDigit=false;
isE=true;
}else if(c=='+'||c=='-') {
if(i!=0&&s.charAt(i-1)!='e') return false;
}else if(c=='.'){
if(isE||isDot) return false;
isDot=true;
}else if(Character.isDigit(c)) {
isDigit=true;
}else {
return false;
}
}
return s.length()>0&&isDigit;
}
}
运行结果: