首页 > 其他 > 详细

LC-65

时间:2019-03-02 23:15:13      阅读:166      评论:0      收藏:0      [点我收藏+]

主要问题:

判断输入的字符串是否一个合法数字

 

思路:

垃圾题目,不说清楚格式。。只能靠试(小数点前后有没有数字真的恶心)

思路就是有限状态机,下面是我自己摸索出来的图,按着这个来打代码就行了。

技术分享图片

 

代码:

 1 class Solution {
 2 public:
 3     bool isNumber(string s) {
 4         int state = 0;
 5         while(s[0]== )  s.erase(0,1); //删除前面的空格
 6         while(s[s.length()-1]== ) s.erase(s.length()-1, 1); //删除最后的空格
 7         for (int i = 0; i < s.length(); i++) {
 8             char c = s[i];
 9             if (state == 0) {
10                 if (c == + || c == -) state = 1;
11                 else if (c >= 0 && c <= 9) state = 2;
12                 else if (c == .) state = 3;
13                 else return false;
14             }
15             else if (state == 1) {
16                 if (c >= 0 && c <= 9) state = 2;
17                 else if (c == .) state = 3;
18                 else return false;
19             }
20             else if (state == 2) {
21                 if (c >= 0 && c <= 9) state = 2;
22                 else if (c == .) state = 4;
23                 else if (c == e) state = 5;
24                 else return false;
25             }
26             else if (state == 3) {
27                 if (c >= 0 && c <= 9) state = 4;
28                 else return false;
29             }
30             else if (state == 4) {
31                 if (c >= 0 && c <= 9) state = 4;
32                 else if (c == e) state = 5;
33                 else return false;
34             }
35             else if (state == 5) {
36                 if (c == + || c == -) state = 6;
37                 else if (c >= 0 && c <= 9) state = 7;
38                 else return false;
39             }
40             else if (state == 6) {
41                 if (c >= 0 && c <= 9) state = 7;
42                 else return false;
43             }
44             else if (state == 7) {
45                 if (c >= 0 && c <= 9) state = 7;
46                 else return false;
47             }
48         }
49         return (state == 2 || state == 4 || state == 7);
50     }
51 };

 

LC-65

原文:https://www.cnblogs.com/leo-lzj/p/10463497.html

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