valid-number

来源:互联网 发布:网络小说 知乎 编辑:程序博客网 时间:2024/06/04 20:58

题目:

Validate 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.

程序:

class Solution {public:  bool isNumber(const char *s) {   string str(s);   int index = str.find_first_not_of(' ');   if(str[index] == '+' || str[index] == '-')      index++;   int points = 0,numbers = 0;   for(;str[index]>='0' && str[index]<='9' || str[index]=='.';index++)      s[index] == '.' ? ++points : ++ numbers;   if(points>1 || numbers<1)     return false;    if(str[index] == 'e' || str[index] == 'E')   {      index++;      if(str[index] == '+' || str[index] == '-')        index++;      int afterE =0;      for(;str[index]>='0' && str[index]<='9';index++)        afterE++;      if(afterE<1)        return false;   }   for(;str[index]==' ';index++){}   return str[index]=='\0';  }};