1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| class Solution { public: int myAtoi(string s) { int res = 0, sign = 1, i = 0, n = s.size(); while(s[i] == ' ') i ++; if(s[i] == '-'){ sign = -1; i ++; } else if(s[i] == '+') i ++;
while(i < n && isdigit(s[i])){ if(res > INT_MAX / 10 || res == INT_MAX / 10 && (s[i] - '0' > 7)){ return sign == 1 ? INT_MAX : INT_MIN; } res = res * 10 + (s[i] - '0'); i++; } return res * sign; } };
|