leetcode 50: Valid Number

Apr 2 '12Validate if a given string is numeric.

Some examples:
"0" => true
" 0.1 " => true
"abc" => false
"1 a" => false
"2e10" => true

Note: It is intended for the problem statement to be ambiguous. You should gather all requirements up front before implementing one.

uncompleted.

 

 

class Solution {
public:
    bool isNumber(const char *s) {
        // Start typing your C/C++ solution below
        // DO NOT write int main() function
        bool dec = false;
        bool exp = false;
        bool num = false;
        bool space = false;
        
        while( *s==' ') s++;
        
        if( *s == '-' || *s == '+') {
            s++;
        }
        char c;
        while( (c=*s) != '\0' ) {
            if( c==' ') {
                while( *(++s)==' ');
                if( *s == '\0') return num;
                else return false;
            } else if( c == '.') {
                if(dec || !num || exp) {
                    return false;
                } else {
                    dec = true;
                    num = false;
                }
            } else if(c=='e' ) {
                if(exp || !num) {
                    return false;
                } else {
                    exp = true;
                    num = false;
                }
            } else if( c>='0' && c<='9') {
                num = true;
            } else {
                return false;
            }            
            s++;
        }        
        return num;
    }
};


 

posted @ 2013-01-24 18:22  西施豆腐渣  阅读(121)  评论(0编辑  收藏  举报