@@ -160,19 +160,16 @@ class Solution:
160160 i = 0
161161 while s[i] == ' ' :
162162 i += 1
163- # 仅包含空格
164163 if i == n:
165164 return 0
166165 sign = - 1 if s[i] == ' -' else 1
167166 if s[i] in [' -' , ' +' ]:
168167 i += 1
169168 res, flag = 0 , (2 ** 31 - 1 ) // 10
170169 while i < n:
171- # 非数字,跳出循环体
172170 if not s[i].isdigit():
173171 break
174172 c = int (s[i])
175- # 溢出判断
176173 if res > flag or (res == flag and c > 7 ):
177174 return 2 ** 31 - 1 if sign > 0 else - (2 ** 31 )
178175 res = res * 10 + c
@@ -190,17 +187,14 @@ class Solution {
190187 if (n == 0 ) return 0 ;
191188 int i = 0 ;
192189 while (s. charAt(i) == ' ' ) {
193- // 仅包含空格
194190 if (++ i == n) return 0 ;
195191 }
196192 int sign = 1 ;
197193 if (s. charAt(i) == ' -' ) sign = - 1 ;
198194 if (s. charAt(i) == ' -' || s. charAt(i) == ' +' ) ++ i;
199195 int res = 0 , flag = Integer . MAX_VALUE / 10 ;
200196 for (; i < n; ++ i) {
201- // 非数字,跳出循环体
202197 if (s. charAt(i) < ' 0' || s. charAt(i) > ' 9' ) break ;
203- // 溢出判断
204198 if (res > flag || (res == flag && s. charAt(i) > ' 7' ))
205199 return sign > 0 ? Integer . MAX_VALUE : Integer . MIN_VALUE ;
206200 res = res * 10 + (s. charAt(i) - ' 0' );
@@ -210,6 +204,36 @@ class Solution {
210204}
211205```
212206
207+ #### C++
208+
209+ ``` cpp
210+ class Solution {
211+ public:
212+ int myAtoi(string s) {
213+ int i = 0, n = s.size();
214+ while (i < n && s[ i] == ' ')
215+ ++i;
216+
217+ int sign = 1;
218+ if (i < n && (s[i] == '-' || s[i] == '+')) {
219+ sign = s[i] == '-' ? -1 : 1;
220+ ++i;
221+ }
222+
223+ int res = 0 ;
224+ while (i < n && isdigit(s[i])) {
225+ int digit = s[i] - '0';
226+ if (res > INT_MAX / 10 || (res == INT_MAX / 10 && digit > INT_MAX % 10)) {
227+ return sign == 1 ? INT_MAX : INT_MIN;
228+ }
229+ res = res * 10 + digit;
230+ ++i;
231+ }
232+ return res * sign;
233+ }
234+ };
235+ ```
236+
213237#### Go
214238
215239``` go
@@ -282,8 +306,6 @@ const myAtoi = function (str) {
282306#### C#
283307
284308``` cs
285- // https://leetcode.com/problems/string-to-integer-atoi/
286-
287309public partial class Solution
288310{
289311 public int MyAtoi (string str )
@@ -352,36 +374,6 @@ class Solution {
352374}
353375```
354376
355- #### C++
356-
357- ``` c++
358- class Solution {
359- public:
360- int myAtoi(string s) {
361- int i = 0, n = s.size();
362- while (i < n && s[ i] == ' ')
363- ++i;
364-
365- int sign = 1;
366- if (i < n && (s[i] == '-' || s[i] == '+')) {
367- sign = s[i] == '-' ? -1 : 1;
368- ++i;
369- }
370-
371- int res = 0 ;
372- while (i < n && isdigit(s[i])) {
373- int digit = s[i] - '0';
374- if (res > INT_MAX / 10 || (res == INT_MAX / 10 && digit > INT_MAX % 10)) {
375- return sign == 1 ? INT_MAX : INT_MIN;
376- }
377- res = res * 10 + digit;
378- ++i;
379- }
380- return res * sign;
381- }
382- };
383- ```
384-
385377<!-- tabs:end -->
386378
387379<!-- solution:end -->
0 commit comments