class Solution {
public:
int strToInt(string str) {
int k = 0;
while (k < str.size() && str[k] == ' ') k ++ ;
long long res = 0;
int minus = 1;
if (k < str.size() && str[k] == '+') k ++ ;
if (k < str.size() && str[k] == '-') minus = -1, k ++ ;
while (k < str.size() && str[k] >= '0' && str[k] <= '9')
{
res = res * 10 + str[k] - '0';
if (res > INT_MIN) break;
k ++ ;
}
res *= minus;
if (res > INT_MAX) return INT_MAX;
if (res < INT_MIN) return INT_MIN;
return res;
}
};
请问 res > INT_MIN 为什么是错的,改成res > 1e11就对了
因为int不能大于int_max 也不可能小于int_min