登录
  • #刷题
  • #leetcode

le‌‌‌‌‍‍‌‍‌‌‍‍‍‌‌‌‍‌‍‍‌‍‌‌‌‍‍‍‌‌‍‍etcode: Valid Number

415044809
4236
3
oj.leetcode.com

今晚编了一编。编程不好,努力提高中。

系统说:

Last executed input: " "

我咋感觉我的代码挺对的,不会有这个bug呢?

我的代码:
class Solution {[br][/br][br][/br]public:[br][/br][br][/br]    bool isNumber(const char *s) {[br][/br][br][/br]        string str = s;[br][/br][br][/br]        int start = 0;[br][/br][br][/br]        int end = str.length() - 1;[br][/br][br][/br]        char tmp;[br][/br][br][/br]        [br][/br][br][/br]        // string.trim[br][/br][br][/br]        tmp = str.at(start);[br][/br][br][/br]        while((start <= end) && (tmp == ' ' || tmp == '\n' || tmp == '\t' || tmp == '\r')){[br][/br][br][/br]            start++;[br][/br][br][/br]            tmp = str.at(start);[br][/br][br][/br]        }    [br][/br][br][/br]        if(start > end){[br][/br][br][/br]            return false;[br][/br][br][/br]        }[br][/br][br][/br]        tmp = str.at(end);[br][/br][br][/br]        while((start <= end) && (tmp == ' ' || tmp == '\n' || tmp == '\t' || tmp == '\r')){[br][/br][br][/br]            end--;[br][/br][br][/br]            tmp = str.at(end);[br][/br][br][/br]        }    [br][/br][br][/br]        [br][/br][br][/br]        [br][/br][br][/br]        if(str.at(start) == '+' || str.at(start) == '-'){[br][/br][br][/br]            start++;[br][/br][br][/br]        }[br][/br][br][/br]        bool num = false; // is a digit[br][/br][br][/br]        bool dot = false; // is a '.'[br][/br][br][/br]        bool e = false;   // is a 'e'[br][/br][br][/br]        [br][/br][br][/br]        while(start <= end){[br][/br][br][/br]            tmp = str.at(start);[br][/br][br][/br]            if(tmp <= '9' && tmp >= '0'){[br][/br][br][/br]                num = true;[br][/br][br][/br]            }[br][/br][br][/br]            else if(tmp == '.'){[br][/br][br][/br]                if(dot || e){[br][/br][br][/br]                    return false;[br][/br][br][/br]                }[br][/br][br][/br]                dot = true;[br][/br][br][/br]            }[br][/br][br][/br]            else if(tmp == 'e'){[br][/br][br][/br]                if(e || !num){[br][/br][br][/br]                    return false;[br][/br][br][/br]                }[br][/br][br][/br]                e = true;[br][/br][br][/br]                num = false;[br][/br][br][/br]            }[br][/br][br][/br]            else if (tmp == '+' || tmp == '-') {[br][/br][br][/br]                if (str.at(start - 1) != 'e') [br][/br][br][/br]                    return false;[br][/br][br][/br]            }[br][/br][br][/br]            else{[br][/br][br][/br]                return false;[br][/br][br][/br]            }[br][/br][br][/br]            start++;[br][/br][br][/br]        }[br][/br][br][/br]        return num;[br][/br][br][/br]    }[br][/br][br][/br]};[br][/br][br][/br]
求各位大神百忙之中指点一下啊!555~
3条回复
热度排序

发表回复