字符串转化为整数:link
1.题目分析
1.题目不难,主要分三步;找到第一个非空字符,解析出符号,解析数字部分,使用
long long
防止溢出。
2.示例代码
class Solution {
public:
int myAtoi(string str) {
//找到第一个非空字符
int i = 0;
while(i < str.size() && str[i] == ' '){
i++;
}
if(str[i] != '-' && str[i] != '+' && !isdigit(str[i]))
return 0;
//确定符号
int sign = 1;
if(str[i] == '-'){
sign = -1;
i++;
}else if(str[i] == '+'){
i++;
}
//进行数字的解析,使用long long 避免溢出
long long ret = 0;
while(i < str.size() && isdigit(str[i])){
ret = ret * 10 + (str[i++] - '0');
if(sign * ret < INT_MIN) return INT_MIN;
else if(sign * ret > INT_MAX) return INT_MAX;
}
return sign * ret;
}
};