天天看点

Leetcode#8. 字符串转整数 (atoi)

与之前的文章 atoi类似,这道题多了 Leetcode 题目的一些限制,条件有所改变,只需注意条件即可。

class Solution {
public:
    int myAtoi(string str) 
    {
        if(str.length() == )
            return ;
        long ret = ;
        int flag = ;

        //跳过空格
        int i = ;
        while(isspace(str[i]))
            ++i;

        //符号
        if(str[i] == '-')
        {
            flag = ;
            ++i;
        }
        else if(str[i] == '+')
        {
            flag = ;
            ++i;
        }

        //判断非空的第一个字符
        if(str[i] < '0' || str[i] > '9')
            return ;

        for(;i < str.length(); ++i)
        {
            if(str[i] >= '0' && str[i] <= '9')
                ret = ret *  + str[i] - '0';
            else
                break;
            if(ret > INT_MAX && flag == )
                return INT_MAX;
            if(ret > INT_MAX && flag == )
                return INT_MIN;
        }

        if(flag == )
            return ret * (-);
        else
            return ret;
    }
};