字符串数字C++实现
这个问题真的狗!在力扣上面的题。判断字符串是否符合数字类型规范(int,float,double)

官方给的例程都是用的map写了个状态转移表,然后根据表来判定是否能跑到最后。是否能转移到一个合法的状态。(反正我是想不出来这个方法!)
其实对于这个我也有一些自己的看法:
逻辑总体是分为三种不同的情况:
if(E或e存在){
e前的字符串取调用float判断;
e后的字符串调用int数判断;
根据e前和e后的字符串都符合判断,retun T/F;
}
if(小数点存在){
调用float判断;return T/F;
}
if(小数点不存在){
调用int判断;return T/F;
}
这样子问题就被分解为了一个字符串是否符合float,是否符合int。
如果能使用正则表达式的话,到了这里就非常简明了。可惜,不能用正则。
浮点数三个判断:
检查正负符号是否在开头且唯一,去掉正负符号之后,字符串不为空;
检查小数点是否有问题,去除小数点之后,符串不为空;
检查剩余下来的是否都是digit。
整数两个判断:
检查正负符号是否在开头且唯一,去掉正负符号之后,字符串不为空;
检查剩余下来的是否都是digit。
按照这个思路,最终写成了下面这个代码:
