欢迎光临散文网 会员登陆 & 注册

字符串数字C++实现

2021-12-28 22:12 作者:云汉含星  | 我要投稿

这个问题真的狗!在力扣上面的题。判断字符串是否符合数字类型规范(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。

按照这个思路,最终写成了下面这个代码:


字符串数字C++实现的评论 (共 条)

分享到微博请遵守国家法律