一,String to Integer
题目描述
Implement atoi to convert a string to an integer.
我的代码
/**
* limits.h头文件中的宏定义
* INT_MAX、INT_MIN、LONG_MAX、LONG_MIN
*/
class Solution {
public:
int myAtoi(string str) {
if(str.size() == 0){
return 0;
}
int flag = 1, res = 0, dig, i = 0;
//去除字符串前面的空格
while(str[i] == ' '){
i ++;
}
if(str[i] == '-'){
flag = -1;
i ++;
} else if(str[i] == '+'){
i ++;
}
while(i < str.size()){
if(str[i] < '0' || str[i] > '9'){
return flag * res;
}
dig = str[i] - '0';
//判断构成的数字,是否超过int的范围
if(flag == 1 && res * 10.0 + dig > INT_MAX){
return INT_MAX;
} else if(flag == -1 && -res * 10.0 - dig < INT_MIN){
return INT_MIN;
}
res = res * 10 + dig;
i ++;
}
return flag * res;
}
};