首页 > 其他 > 详细

[LeetCode] 65. Valid Number(多个标志位)

时间:2017-02-17 20:11:50      阅读:311      评论:0      收藏:0      [点我收藏+]

技术分享

【思路】该题题干不是很明确,只能根据用例来理解什么样的字符串才是符合题意的,本题关键在于几个标志位的设立,将字符串分为几个部分,代码如下:

 1 class Solution
 2 {
 3 public:
 4     string trim(string s)
 5     {
 6         int i=0;
 7         while(s[i]== ) i ++;      //开头处为空格或者Tab,则跳过
 8         s=s.substr(i);
 9         i=s.size()-1;
10         while(s[i]== ) i --;      //结尾处为空格或者Tab,则跳过
11         s=s.substr(0,i+1);
12         return s;
13     }
14     bool isNumber(string s)
15     {
16         s = trim(s);
17 
18         bool pointSeen = false;
19         bool eSeen = false;
20         bool partOne = false;
21         bool partTwo = false;
22 
23         for(int i = 0; i < s.length(); i ++)
24         {
25             if(s[i] >= 0 && s[i] <= 9)
26             {
27                 if(!eSeen)
28                     partOne = true;
29                 else
30                     partTwo = true;
31             }
32             else if(s[i] == .)
33             {
34                 if(pointSeen || eSeen)
35                     return false;
36                 pointSeen = true;
37             }
38             else if(s[i] == e)
39             {
40                 if(eSeen || !partOne)
41                     return false;
42                 eSeen = true;
43             }
44             else if(s[i] == + || s[i] == -)
45             {
46                 if(i != 0 && s[i - 1] != e)
47                     return false;
48             }
49             else    return false;
50         }
51         if(!partOne)
52             return false;
53         else if(eSeen && !partTwo)
54             return false;
55         else
56             return true;
57     }
58 };

 

[LeetCode] 65. Valid Number(多个标志位)

原文:http://www.cnblogs.com/lca1826/p/6411278.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!