专栏首页calmoundString to Integer (atoi)

String to Integer (atoi)

问题:将字符窜转换成数字 分析:感觉题目不难,但是细节很多,容易想不到 1.数字前面有空格 如s=“    123456” 2.数字前出现了不必要或多于的字符导致数字认证错误,输出0   如s=“   b1234”  ,s=“  ++1233” , s=“ +-1121” 3.数字中出现了不必要的字符,返回字符前的数字 如s=“   12a12” , s=“ 123  123” 4.数字越界 超过了范围(-2147483648--2147483647) 若超过了负数的 输出-2147483648  超过了正数的输出2147483647 在科普一个知识点,倘若某个数超过了2147483647则会变为负数,反过来一样

class Solution {
public:
    int atoi(const char *str) {
    long long cur=0;//初始化老是忘记
    int num=0,i=0;
    int flag1=0,flag2=0;
    while(str[i]!='\0' && str[i]==' ') i++;//开头空格舍弃
    if(str[i]=='-') flag1++,i++;
    else if(str[i]=='+') flag2++,i++;
    for(; str[i]!='\0'; i++)
    {
        if(str[i]>='0' && str[i]<='9')
        {
            if(flag1==2)
            {
                cur=cur*10-(str[i]-'0');//这里是减法,因为cur符号是负号了
                if(cur<-2147483648) return -2147483648;
            }
            else if(flag1==1) cur=-str[i]+'0',flag1++;//将负数的符号记录到cur里
            else
            {
                cur=cur*10+(str[i]-'0');
                if(cur>2147483647) return 2147483647;
            }
        }
        else break;
    }
    num=(int)cur;
    return num;
    }
};

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ZOJ 3728 Collision

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5074 题意:两个圆,小圆为实体,具有碰...

    用户1624346
  • Rotate Image

    问题:矩阵顺时针旋转90度 class Solution { public: bool dfs(vector<vector<int> > &matrix...

    用户1624346
  • Search a 2D Matrix

    问题:二维数组中是否存在一个数 class Solution { public: bool dfs(vector<vector<int> > &matr...

    用户1624346
  • 通过欧拉计划学Rust编程(第54题)

    由于研究Libra等数字货币编程技术的需要,学习了一段时间的Rust编程,一不小心刷题上瘾。

    申龙斌
  • Mybatis获取自增长的主键id

    这个问题主要是今天项目中新加的一个需求导致的,主要过程是这样的,因为每个项目里面用户,角色,权限这三者是密不可分的,在数据库中就可以通过下面这张图来表达他们三者...

    萌萌哒的瓤瓤
  • 纳米级无人机PULP Dronet仅重27克,具有强大的自主导航能力

    苏黎世联邦理工学院和博洛尼亚大学的研究人员开发了一个纳米级无人机,名为PULP Dronet,仅有27克,具有深度学习的视觉导航引擎。论文显示无人机可以在一个端...

    AiTechYun
  • Struts Spring Hibern

    <!--[if !supportEmptyParas]--> <!--[endif]-->

    py3study
  • Python3爬取汽车目标经销商数据

    本文采用Python3进行语法编写,Python3与Python2中的函数会有所不同,但是相差不大,具体的问题可以百度找到,因有朋友在做汽车方面的业务,因此需要...

    机器学习AI算法工程
  • python实现的简单点对点(p2p)聊

    点对点聊天首先是基于多线程的网络编程,其次就是将每一个连接都保存为一个具有独一属性的对象并添加到连接列表中,对于每一个连接对象发送过来的信息必须要包含主要的三项...

    py3study
  • 里程碑!美国交通部今夏修订无人驾驶汽车指导原则

    【腾讯科技编者按】 据国外媒体报道称,美国交通部长赵小兰(Elaine Chao)日前在出席美国底特律汽车展的新闻发布会上表示,特朗普政府计划于今年夏天推出经过...

    企鹅号小编

扫码关注云+社区

领取腾讯云代金券