tips:
INT_MAX (2147483647) 和INT_MIN (-2147483648)
定义结构、类、枚举类型时必须大括号 } 后面加分号;
class Solution {
public:
int myAtoi(string str) {
long result = 0;
int flag = 1;
int i = 0;
if (str == " ") {
i++;
}
if (str[i] == '-' || str[i] == '+') {
if (str[i] == '-') { flag = -1; i++; }
if (str[i] == '+') { i++; }
}
if (str[i] >= '9' or str[i] <= '0') {
return 0;
}
for (; i < str.length(); i++) {
if (str[i] <= '9' & str[i] >= '0') {
result = result * 10 + str[i] - '0';
if (flag == 1) {
cout << INT_MAX <<result<<endl;
if (result >= INT_MAX) {
return INT_MAX;
}
}
if (flag == -1) {
if (-1*result<= INT_MIN ) {
return INT_MIN;
}
}
}
else {
break;
}
}
return flag*result;
}
};
有一点一定要注意 INT_MAX不能再加一 加完会变负数
INT_MIN不能再减一 减完会变正 也不能乘以-1
我在这里de了好久 是我太蠢了 ?