剑指offer 表示数值的字符串

 1 class Solution {
 2 public:
 4     bool isNumeric(char* string)
 5     {
 6         std::string str=string;
 7         if(str.empty()){return true;}
 8         bool if_e=false,if_dian=false;
 9         for(int i=0;ii){
10             char c=str[i];
11             if(c=='+' or c=='-'){
12                 if(i==0 or (i>0 and (str[i-1]=='e' or str[i-1]=='E')))
13                 {
14                     continue;
15                 }
16                 return false;
17             }
18             else if(c=='.'){
19                 if(if_dian or if_e){
20                     return false;
21                 }
22                 if_dian=true;
23             }
24             else if(c=='e' or c=='E'){
25                 if(if_e){
26                     return false;
27                 }
28                 if_e=true;
29             }
30             else if(c<='9' and c>='0'){
31                 continue;
32             }
33             else{
34                 return false;
35             }
36         }
37         return str.back()<'0' or str.back()>'9'?false:true;
38     }
39 };

面向用例编程。。

你可能感兴趣的:(剑指offer 表示数值的字符串)