File tree Expand file tree Collapse file tree 2 files changed +75
-0
lines changed Expand file tree Collapse file tree 2 files changed +75
-0
lines changed Original file line number Diff line number Diff line change @@ -143,6 +143,46 @@ class Solution {
143143}
144144```
145145
146+ #### C++
147+
148+ ``` cpp
149+ class Solution {
150+ public:
151+ int strToInt(string str) {
152+ int res = 0, bndry = INT_MAX / 10;
153+ int i = 0, sign = 1, length = str.size();
154+ if (length == 0) {
155+ return 0;
156+ }
157+ // 删除首部空格
158+ while (str[ i] == ' ') {
159+ if (++i == length) {
160+ return 0;
161+ }
162+ }
163+ // 若有负号则标识符号位
164+ if (str[ i] == '-') {
165+ sign = -1;
166+ }
167+ if (str[ i] == '-' || str[ i] == '+') {
168+ i++;
169+ }
170+ for (int j = i; j < length; j++) {
171+ if (str[ j] < '0' || str[ j] > '9') {
172+ break;
173+ }
174+ // res>214748364越界;res=214748364且str[ j] > '7'越界
175+ if (res > bndry || res == bndry && str[ j] > '7') {
176+ return sign == 1 ? INT_MAX : INT_MIN;
177+ }
178+ // 从左向右遍历数字并更新结果
179+ res = res * 10 + (str[ j] - '0');
180+ }
181+ return sign * res;
182+ }
183+ };
184+ ```
185+
146186#### Go
147187
148188```go
Original file line number Diff line number Diff line change 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+ };
You can’t perform that action at this time.
0 commit comments