String to Integer (atoi)

注意特殊情况

class Solution {
public:
    int myAtoi(string str) {
        int i = 0;
        for(; i<str.size() && str[i] == ' '; ++i);
        
        int sign = 1;
        if(str[i] == '+')
            ++i;
        else if(str[i] == '-')
        {
            sign = -1;
            ++i;
        }
        
        int num = 0;
        for(; i<str.size(); ++i)
        {
            if(str[i] < '0' || str[i] > '9')
                break;
            
            if(num > INT_MAX/10 || (num == INT_MAX/10 && (str[i] - '0') > INT_MAX % 10))
                return sign == 1 ? INT_MAX : INT_MIN;
                
            num = 10*num + (str[i] - '0');
        }
        
        return num * sign;
    }
};

 

posted @ 2017-04-21 11:44  chengcy  Views(118)  Comments(0)    收藏  举报