模拟题,感觉挺复杂的
class Solution {
public:
int myAtoi(string str) {
int len = str.size();
int i = 0, flag = 1;
long long base = 0;
// 跳过前导空格
while (i < len && str[i] == ' ') {
i++;
}
if (i < len && (str[i] == '-' || str[i] == '+')) {
flag = (str[i] == '-') ? -1 : 1;
i++;
}
while (i < len && str[i] >= '0' && str[i] <= '9') {
base = base * 10 + (str[i] - '0');
i++;
// 检查溢出
if (base * flag > INT_MAX) return INT_MAX;
if (base * flag < INT_MIN) return INT_MIN;
}
return flag * base;
}
};