标签:style blog color io strong for ar div log
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.
思路:
1 class Solution { 2 public: 3 bool isNumber( const char *s ) { 4 return ParseDecimal( s ) && ParseScientific( s ) && *s == ‘\0‘; 5 } 6 private: 7 bool ParseDigits( const char* &s ) { 8 if( *s < ‘0‘ || *s > ‘9‘ ) { return false; } 9 while( *s >= ‘0‘ && *s <= ‘9‘ ) { ++s; } 10 return true; 11 } 12 bool ParseDecimal( const char* &s ) { 13 while( *s == ‘ ‘ ) { ++s; } 14 if( *s == ‘+‘ || *s == ‘-‘ ) { 15 if( *(++s) == ‘\0‘ ) { return false; } 16 } 17 bool flag1 = ParseDigits( s ); 18 if( *s == ‘.‘ ) { ++s; } 19 bool flag2 = ParseDigits( s ); 20 return flag1 || flag2; 21 } 22 bool ParseScientific( const char* &s ) { 23 if( *s == ‘e‘ ) { 24 ++s; 25 if( *s == ‘+‘ || *s == ‘-‘ ) { 26 if( *(++s) == ‘\0‘ ) { return false; } 27 } 28 if( !ParseDigits( s ) ) { return false; }; 29 } 30 while( *s == ‘ ‘ ) { ++s; } 31 return true; 32 } 33 };
标签:style blog color io strong for ar div log
原文地址:http://www.cnblogs.com/moderate-fish/p/3934704.html