Implement atoi to convert a string to an integer.
Hint: Carefully consider all possible input cases. If you want a challenge, please do not see below and ask yourself what are the possible input cases.
Notes: It is intended for this problem to be specified vaguely (ie, no given input specs). You are responsible to gather all the input requirements up front.
class Solution {
public:
int myAtoi(string str) {
if (str == "") return 0;
long long res = 0;
int sign = 1;
int i = 0;
while (str[i] == ' ') { // meeting ' '
i++;
}
if (str[i] == '-') { // meeting '-' or '+'
sign = -1;
i++;
} else if(str[i] == '+')
{
i++;
}
while (isdigit(str[i]))
{
int n = str[i] - '0';
res = res*10 + n;
if (res*sign > INT_MAX)
{
res = INT_MAX;
break;
}
else if (res*sign < INT_MIN)
{
res = INT_MIN;
break;
}
i++;
}
return int(sign*res);
}
};