File tree Expand file tree Collapse file tree 1 file changed +30
-30
lines changed
solution/0000-0099/0008.String to Integer (atoi) Expand file tree Collapse file tree 1 file changed +30
-30
lines changed Original file line number Diff line number Diff line change @@ -214,6 +214,36 @@ class Solution {
214
214
}
215
215
```
216
216
217
+ #### C++
218
+
219
+ ``` cpp
220
+ class Solution {
221
+ public:
222
+ int myAtoi(string s) {
223
+ int i = 0, n = s.size();
224
+ while (i < n && s[ i] == ' ')
225
+ ++i;
226
+
227
+ int sign = 1;
228
+ if (i < n && (s[i] == '-' || s[i] == '+')) {
229
+ sign = s[i] == '-' ? -1 : 1;
230
+ ++i;
231
+ }
232
+
233
+ int res = 0 ;
234
+ while (i < n && isdigit(s[i])) {
235
+ int digit = s[i] - '0';
236
+ if (res > INT_MAX / 10 || (res == INT_MAX / 10 && digit > INT_MAX % 10)) {
237
+ return sign == 1 ? INT_MAX : INT_MIN;
238
+ }
239
+ res = res * 10 + digit;
240
+ ++i;
241
+ }
242
+ return res * sign;
243
+ }
244
+ };
245
+ ```
246
+
217
247
#### Go
218
248
219
249
``` go
@@ -356,36 +386,6 @@ class Solution {
356
386
}
357
387
```
358
388
359
- #### C++
360
-
361
- ``` c++
362
- class Solution {
363
- public:
364
- int myAtoi(string s) {
365
- int i = 0, n = s.size();
366
- while (i < n && s[ i] == ' ')
367
- ++i;
368
-
369
- int sign = 1;
370
- if (i < n && (s[i] == '-' || s[i] == '+')) {
371
- sign = s[i] == '-' ? -1 : 1;
372
- ++i;
373
- }
374
-
375
- int res = 0 ;
376
- while (i < n && isdigit(s[i])) {
377
- int digit = s[i] - '0';
378
- if (res > INT_MAX / 10 || (res == INT_MAX / 10 && digit > INT_MAX % 10)) {
379
- return sign == 1 ? INT_MAX : INT_MIN;
380
- }
381
- res = res * 10 + digit;
382
- ++i;
383
- }
384
- return res * sign;
385
- }
386
- };
387
- ```
388
-
389
389
<!-- tabs:end -->
390
390
391
391
<!-- solution:end -->
You can’t perform that action at this time.
0 commit comments