Valid Number

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.

C++:
01 class Solution {
02 public:
03     bool isNumber(const char *s) {
04         // Start typing your C/C++ solution below
05         // DO NOT write int main() function
06         bool spaceExist=false;
07         bool start=false;
08         bool exponential=false;
09         bool dotexist=false;
10         bool signexist=false;
11         int i=0;
12         while(s[i++]==‘ ‘);
13         i;
14         while(s[i]!=)
15         {
16             char c=s[i++];
17             if(c==‘ ‘)
18             {
19                 spaceExist=true;
20                 continue;
21             }
22             if(spaceExist)
23                 return false;
24             if((c==‘+’)||(c==‘-‘))
25             {
26                 if((dotexist)||((start||signexist)&&(s[i2]!=‘e’)))
27                     return false;
28                 signexist=true;
29             }
30             else if(c==‘.’)
31             {
32                 if((exponential)||(dotexist)||(s[i2]==‘e’))
33                     return false;
34                 else
35                     dotexist=true;
36             }
37             else if(c==‘e’)
38             {
39                 if((!start)||(exponential==true))
40                     return false;
41                 exponential=true;
42                 start=false;
43                 dotexist=false;
44             }
45             else if((c>‘9’)||(c<‘0’))
46                 return false;
47             else
48             {
49                 start=true;
50             }
51         }
52         if(start)
53             return true;
54         else
55             return false;
56     }
57 };
Advertisements
This entry was posted in Array and linked list, String. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s