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.empty())
return 0;
int i = 0;
bool isPositive = true;
while (str[i] == ' ')
i++;
if (str[i] == '+')
i++;
else if (str[i] == '-')
{
isPositive = false;
i++;
}
long long int v = 0;
for (;str[i] != '\0';i++)
{
if (str[i] >= '0'&&str[i] <= '9')
{
v = v * 10 + (str[i] - '0');
if (v > INT_MAX)
break;
}
else
break;
}
if (!isPositive)
v = -v;
if (v > INT_MAX)
v = INT_MAX;
if (v < INT_MIN)
v = INT_MIN;
return (int)v;
}
};