File tree Expand file tree Collapse file tree 1 file changed +42
-0
lines changed Expand file tree Collapse file tree 1 file changed +42
-0
lines changed Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ public:
3
+ int myAtoi (string s) {
4
+
5
+ // INT_MAX : 2147483647
6
+ // E.g. : 2147483648
7
+
8
+ int i = 0 , n = s.size (), ans = 0 , sign = 1 ;
9
+ bool isSymbolUsed = false ;
10
+
11
+ while (i<n && s[i]==' ' ){
12
+ i++;
13
+ }
14
+
15
+ while (i<n){
16
+ char character = s[i];
17
+ if (character == ' -' || character == ' +' ){
18
+ if (isSymbolUsed){
19
+ break ;
20
+ } else if (character == ' -' ){
21
+ sign = -1 ;
22
+ }
23
+ isSymbolUsed = true ;
24
+ } else if (character>=' 0' && character<=' 9' ){
25
+ int digit = character - ' 0' ;
26
+ if ((ans > INT_MAX/10 ) || (ans==INT_MAX/10 && INT_MAX%10 <=digit)){
27
+ return INT_MAX;
28
+ } else if ((ans < INT_MIN/10 ) || (ans==INT_MIN/10 && (~INT_MIN%10 +1 )%10 <=digit)){
29
+ return INT_MIN;
30
+ } else {
31
+ ans = ans*10 + sign*digit;
32
+ }
33
+ isSymbolUsed = true ;
34
+ } else {
35
+ break ;
36
+ }
37
+ i++;
38
+ }
39
+
40
+ return ans;
41
+ }
42
+ };
You can’t perform that action at this time.
0 commit comments