Valid Number

来源:互联网 发布:安卓上使用数据库 编辑:程序博客网 时间:2024/04/29 12:56

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;    }};


0 0
原创粉丝点击