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 {
214214}
215215```
216216
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+
217247#### Go
218248
219249``` go
@@ -356,36 +386,6 @@ class Solution {
356386}
357387```
358388
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-
389389<!-- tabs:end -->
390390
391391<!-- solution:end -->
You can’t perform that action at this time.
0 commit comments