public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param s string字符串 
     * @return int整型
     */
    
    public int StrToInt(String s) {
           int len  = s.length();
           char[] charArray = s.toCharArray();
//           去除空格
        int index = 0;
        while (index<len && charArray[index] == ' '){
            index++;
        }

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

        /*如果出现符号字符  并记录正负*/
        int sign = 1;
        char firstChar = charArray[index];
        if (firstChar == '+'){
            index++;
        }else if(firstChar == '-'){
            index++;
            sign = -1;
        }

        /*将后序出现的数字字符进行转换*/
        int res = 0;
        while (index<len){
            char currChar = charArray[index];
            /*先判断不合法的情况*/
            if (currChar>'9'||currChar<'0'){
                break;
            }
            // 题目中说:环境只能存储 32 位大小的有符号整数,因此,需要提前判:断乘以 10 以后是否越界
            if (res > Integer.MAX_VALUE / 10 || (res == Integer.MAX_VALUE / 10 && (currChar - '0') > Integer.MAX_VALUE % 10)) {
                return Integer.MAX_VALUE;
            }
            if (res < Integer.MIN_VALUE / 10 || (res == Integer.MIN_VALUE / 10 && (currChar - '0') > -(Integer.MIN_VALUE % 10))) {
                return Integer.MIN_VALUE;
            }

            res = res*10+sign*(currChar-'0');
            index++;
        }
         return  res;
    }
}