
class Solution {
public:
bool isNumber(const char *s) {
int transition[9][6] = {
-1, 0, 3, 1, 2, -1, // next states for state 0
-1, 8, -1, 1, 4, 5, // next states for state 1
-1, -1, -1, 4, -1, -1, // next states for state 2
-1, -1, -1, 1, 2, -1, // next states for state 3
-1, 8, -1, 4, -1, 5, // next states for state 4
-1, -1, 6, 7, -1, -1, // next states for state 5
-1, -1, -1, 7, -1, -1, // next states for state 6
-1, 8, -1, 7, -1, -1, // next states for state 7
-1, 8, -1, -1, -1, -1, // next states for state 8
};
if (s=="") return false;
int i=0, state=0;
while (*s!=0) {
if (*s==' ') i=1;
else if (*s=='+' || *s=='-') i=2;
else if (*s>='0' && *s<='9') i=3;
else if (*s=='.') i=4;
else if (*s=='e' || *s=='E') i=5;
else return false;
state=transition[state][i];
if (state==-1) return false;
s++;
}
return state==1 || state==4 || state==7 ||state==8;
}
};
4741

被折叠的 条评论
为什么被折叠?



