首页 > 其他 > 详细

【剑指offer】表示数值的字符串

时间:2020-03-05 22:33:09      阅读:53      评论:0      收藏:0      [点我收藏+]

题目链接:表示数值的字符串

 

题意:请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。

 

题解:这个就是模拟。判断一下字符出现满足的条件。

小数点:在此之前没有出现过小数点,并且不是用科学计数法。

e/E:说明是科学计数法,并且一个字符串中只能有一个e/E

正负号:字符串开头做判断。

 

代码:

 

 1 class Solution {
 2 public:
 3     bool isNumeric(char* string)
 4     {
 5         if(string == NULL)    return false;
 6         if(*string == + || *string == -) string++;
 7         if(*string == \0)    return false;
 8         bool num = false, e = false, point = false;
 9         while(*string != \0){
10             //判断数字
11             if(*string >=0 && *string <=9){
12                 num = true;
13                 string++;
14             }
15             else if(*string == .){    //小数点
16                 if(point || e)    return false;
17                 string++;
18                 point = true;
19             }
20             else if(*string == e || *string == E){    //科学计数法
21                 if(e || !num) return false;
22                 string++;
23                 e = true;
24                 if(*string == + || *string == -)    string ++;
25                 if(*string == \0)    return false;
26             }
27             else    return false;
28         }
29         return true;
30     }
31 
32 };

 

【剑指offer】表示数值的字符串

原文:https://www.cnblogs.com/Asumi/p/12423225.html

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