AcWing 87. 把字符串转换成整数
原题链接
中等
作者:
Value
,
2020-02-14 19:21:56
,
所有人可见
,
阅读 918
C++ 代码
class Solution {
public:
int strToInt(string str) {
int k = 0;
while(k < str.size() && str[k] == ' ') k ++ ;
if(k == str.size()) return 0;
int flag = 1;
if(str[k] == '-'){
flag = -1;
k ++ ;
}else if(str[k] == '+') k ++ ;
long long res = 0;
while(k < str.size()){
if(str[k] >= '0' && str[k] <= '9') res = res * 10 + (str[k] - '0');
else break;
if(res * flag > INT_MAX) return INT_MAX;
else if(res * flag < INT_MIN) return INT_MIN;
k ++ ;
}
while( ++ k < str.size()){
if(str[k] >= '0' && str[k] <= '9') return 0;
}
return flag * res;
}
};