Skip to content

Commit e251f9e

Browse files
authored
feat: add solution(s) to lc problem(s): No.67
1 parent bbb63be commit e251f9e

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
class Solution {
2+
public:
3+
int StrToInt(string str) {
4+
int res = 0, bndry = INT_MAX / 10;
5+
int i = 0, sign = 1, length = str.size();
6+
if(length == 0) {
7+
return 0;
8+
}
9+
// 删除首部空格
10+
while(str[i] == ' '){
11+
if(++i == length) {
12+
return 0;
13+
}
14+
}
15+
//若有负号则标识符号位
16+
if(str[i] == '-') {
17+
sign = -1;
18+
}
19+
if(str[i] == '-' || str[i] == '+') {
20+
i++;
21+
}
22+
for(int j = i; j < length; j++) {
23+
if(str[j] < '0' || str[j] > '9') {
24+
break;
25+
}
26+
//res>214748364越界;res=214748364且str[j] > '7'越界
27+
if(res > bndry || res == bndry && str[j] > '7'){
28+
return sign == 1 ? INT_MAX : INT_MIN;
29+
}
30+
//从左向右遍历数字并更新结果
31+
res = res * 10 + (str[j] - '0');
32+
}
33+
return sign * res;
34+
}
35+
};

0 commit comments

Comments
 (0)