JZ49 把字符串转换成整数

本文最后更新于:2022年4月9日 中午

image-20211010151104044

Solution

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Solution {
public:
int StrToInt(string str) {
int len = str.size();
if (len == 0) return 0;
long res = 0, flag = 1;
int i = 0;
while (str[i] == ' ') {
i++;
if (i >= len) return 0;
}
if (str[i] == '-' || str[i] == '+') {
if (str[i] == '-') flag = -1;
i++;
}
for (i; i < len; ++i) {
if (str[i] < '0' || str[i] > '9') return 0;
res = res * 10 + (str[i] - '0');
if (res >= INT_MAX && flag == 1) return INT_MAX;
if (res > INT_MAX && flag == -1) return INT_MIN;
}
return res * flag;
}
};