LeetCode-65-Valid Number 脑残暴力

来源:互联网 发布:mac怎么打包压缩文件 编辑:程序博客网 时间:2024/04/28 11:13


class Solution {public:    bool isNumber(string s) {        enum InputType {            INVALID, SPACE, SIGN, DOT, E, DIGIT, LEN        };        int trans[][LEN] = {            {-1,  0,  1,  2, -1,  3},            {-1, -1, -1,  2, -1,  3},            {-1, -1, -1, -1, -1,  4},            {-1,  5, -1,  4,  6,  3},            {-1,  5, -1, -1,  6,  4},            {-1,  5, -1, -1, -1, -1},            {-1, -1,  7, -1, -1,  8},            {-1, -1, -1, -1, -1,  8},            {-1,  5, -1, -1, -1,  8}        };        int state = 0;        int p=0;        while (p<s.length()) {            InputType input;            if (isspace(s[p])) {                input = SPACE;            } else if (s[p] == '+' || s[p] == '-') {                input = SIGN;            } else if (s[p] == '.') {                input = DOT;            } else if (s[p] == 'e' || s[p] == 'E') {                input = E;            } else if (isdigit(s[p])) {                input = DIGIT;            } else {                input = INVALID;            }            state = trans[state][input];            if (state == -1) {                return false;            }            p++;        }        return state == 3 || state == 4 || state == 5 || state == 8;    }};


原创粉丝点击