LeetCode 8 String to Integer(atoi)

8 String to Integer(atoi)

按照题目的要求:你要先越过前面的空格。
之后可能遇到’+’’-’ [0-9],other,也照常处理即可
还要注意溢出问题:这里我用了long long(感觉有点作弊了QwQ)。当int溢出了,long long肯定没溢出.所以你在转换时:发现long long值大于INT_MAX时,就可以停止转换了。因为int已经溢出了

class Solution {
public:
    int myAtoi(string str) {
        int i=0,len = str.size();
        long long result=0;
        while(i<len && str[i]==' ')
            i++;
        bool flag = true;
        if(str[i]=='+' || str[i]=='-')
            flag = str[i++] =='+'?true:false;
        else if(!isdigit(str[i]))
            return 0;
        while(i<len && isdigit(str[i])){
            result = result*10 + str[i]-'0';
            if(result >INT_MAX)
                break;
            i++;
        }
        result *= flag?1:-1;
        if(result>INT_MAX)
            return INT_MAX;
        else if(result<INT_MIN)
            return INT_MIN;
        else
            return result;
    }
};

猜你喜欢

转载自blog.csdn.net/weixin_41256413/article/details/84138476