#include <climits>
class Solution {
public:
    //遍历处理每一位,跳过前导0,判断符号,得到数字,遇得到符号终止
    int StrToInt(string s) {
        int n=s.length();
        int index = 0;

        while(index < n && s[index] == ' '){  //去掉前导0
            index++;
        }

        if(index == n){
            return 0;
        }

        int ans=0;
        int sign = 1;
        if(s[index] == '+'){
            index++;
        }else if(s[index] == '-'){
            index++;
            sign = -1;
        }

        if(index == n){
            return 0;
        }

        while(index < n){
            char c = s[index];

            if(c < '0' || c > '9'){
                return ans;
            }

            if(ans > INT_MAX/10 || ( ans==INT_MAX/10 && (c-'0')>=7 )){
                return INT_MAX;
            }

            if(ans < INT_MIN/10 || ( ans==INT_MIN/10 && (c-'0')>=8 )){
                return INT_MIN;
            }

            ans = ans*10 + sign*(c-'0');
            index++;
        }

        return ans;
    }
};