状态有点麻木,不该熬夜的。

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param s string字符串 
     * @return int整型
     */
    int StrToInt(string s) {
      if (s.empty()) {
        return 0;
      }
      
      int res = 0;
      int sign = 1;
      int index = 0;
      
      while (index < s.size()) {
        if (s[index] == ' ') {
          ++index;
        } else {
          break;
        }
      }
     
      //  只有空格
      if (index == s.size()) {
        return 0;
      }
      
      if (s[index] == '-') {
        sign = -1;
        ++index;
      } else if (s[index] == '+') {
        ++index;
      }
      
      //  只有符号
      if (index == s.size()) {
        return 0;
      }
 
      while (index < s.size()) {
        char c = s[index];
        if (c < '0' || c > '9') {
          break;
        }
        
        //  溢出判断
        if (res > INT_MAX / 10 || (res == INT_MAX / 10 && (c - '0') > INT_MAX % 10)) {
          return INT_MAX;
        }
        if (res < INT_MIN / 10 || (res == INT_MIN / 10 && (c - '0') < INT_MIN % 10)) {
          return INT_MIN;
        }
        
        res = res * 10 + sign * (c - '0');
        ++index;
      }
      
      return res;
    }
};