Loading

8. 字符串转整数 (atoi)

题目

 

代码

class Solution {
public:
    int myAtoi(string str)
    {
        int res=0,sign=1;

        int i=str.find_first_not_of(' ');

        if(str[i]=='+'||str[i]=='-')

        sign=str[i++]=='+'?1:-1;
        int base=INT_MAX/10;

        while(isdigit(str[i]))
        {
            if(res>base||(res==base&&(str[i]-'0')>7))
                return sign==1?INT_MAX:INT_MIN;
          
            res=res*10+str[i++]-'0';
            
        }
        return sign*res;
    }
};

 

思路

先找出是否有符号,如果有则判断是正数还是负数,然后每次加上一位数字之前需要判断是否会导致溢出,如果溢出则直接返回整数最大值或者最小值。

posted @ 2018-09-14 08:16  李正浩  阅读(84)  评论(0编辑  收藏  举报