本题要求将字符串转换为整型,需要注意以下几个问题:
1. 跳过开始的所有空白字符。
2. 遇到正负号时做判断。
3. 当转换为整型后超过了int能表示的范围[INT_MIN, INT-MAX]。
class Solution {
public:
int myAtoi(string str) {
int i = 0;
int flag = 1;
long result = 0;
while(str[i] == ' '){
i++;
}
if(str[i] == '-' || str[i] == '+')
flag = (str[i++] == '-') ? -1 : 1;
while(str[i] >= '0' && str[i] <= '9' && i <= str.size()){
result = result * 10 + (str[i++] - '0');
if(result * flag >= INT_MAX)
return INT_MAX;
if(result * flag <= INT_MIN)
return INT_MIN;
}
return result * flag;
}
};