leetcode 8. 字符串转换整数 (atoi) 面向测试编程

前言

这道题就是考验你耐心,对于每种异常情况的处理,思路上没有大的差别,不像那些递归、动态规划等。
😋 😋😋 😋 冲冲冲

题目描述

在这里插入图片描述
题目链接

思路

首先处理空格,
处理非字母
处理符号位
循环计算
返回

代码

class Solution {
public:
    int myAtoi(string str) {
        int i=0;
        int len = str.size();
        while(str[i]==' ') i++; //空格
        if(i==str.size()||(str[i]>='a'&&str[i]<='z'))
            return 0;
        //符号位
        int sign = 1;
        if(str[i]=='-')
        {
            sign=-1,i++;
        }
        else if(str[i]=='+')
        {
            i++;
        }
        long res=0;
        //求和转换
        while(str[i]>='0'&&str[i]<='9')
        {
            res = (res)*10+(str[i]-'0');
            if(res > INT_MAX)
            {
                cout<<"s";
                if(sign==-1)
                    return INT_MIN;
                else
                    return INT_MAX;
            }
            i++;
        }
        return res*sign;
    }
};

重难点

此题对于不熟悉的朋友对于 x = x10 + i 这个式子不熟悉,这个式子可以用于将数组转化为整数

**将[1,2,3,4]转化为1234。即((1
10+2)10+3)10+4 = 1234

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值