天天看點

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;
    }
};