LeetCode 8. String to Integer (atoi)

LeetCode 8. String to Integer (atoi)

标签(空格分隔): LeetCode


题目大意就是给你一个字符串,使它转化成数字

  • 去除前导0
  • 判断起始位置为正负号,数字或者其他字符。
  • 如果是数字,使以前的数字乘以10加上现在的数字。不是数字直接返回值就可以了
class Solution
{
public:
    int myAtoi(string str)
    {
        int i = 0;
        while(str[i] == ' ')
            i ++;

        long long ans = 0, m = 1;
        if(str[i] == '-')
            m = -1;
        else if(str[i] == '+')
            m = 1;
        else if(str[i] >= '0' && str[i] <= '9')
            ans = ans * 10 + str[i] - '0';
        else
            return ans;

        for(i = i+1; i<str.size(); ++ i)
        {
            if(str[i] >= '0' && str[i] <='9')
                ans = ans * 10 + str[i] - '0';
            else
                return ans * m;
                
            if(ans > INT_MAX)
            {
                if(m == 1)
                    return INT_MAX;
                else
                    return INT_MIN;
            }
        }
        return ans * m;
    }
};
原文地址:https://www.cnblogs.com/aiterator/p/6516282.html