C++代码和C代码差不多,上C++代码
推荐一个网页https://www.cnblogs.com/grandyang/p/4606334.html
class Solution {
public:
int myAtoi(string str) {
if (str.empty()) return 0;
int sign = 1, base = 0, i = 0, n = str.size();
while (i < n && str[i] == ' ') ++i;
if (str[i] == '+' || str[i] == '-') {
sign = (str[i++] == '+') ? 1 : -1;
}
while (i < n && str[i] >= '0' && str[i] <= '9') {
if (base > INT_MAX / 10 || (base == INT_MAX / 10 && str[i] - '0' > 7)) {
return (sign == 1) ? INT_MAX : INT_MIN;
}
base = 10 * base + (str[i++] - '0');
}
return base * sign;
}
};
C语音标准库中有INT_MAX和INT_MIN,我开始重定义的时候没加标准库,然后没用移位,用了pow这个函数,这是浮点型函数。导致C程序提交不通过。还要继续加油。