LeetCode 8. String to Integer (atoi)
标签(空格分隔): LeetCode
题目大意就是给你一个字符串,使它转化成数字
- 去除前导0
- 判断起始位置为正负号,数字或者其他字符。
- 如果是数字,使以前的数字乘以10加上现在的数字。不是数字直接返回值就可以了
class Solution
{
public:
int myAtoi(string str)
{
int i = 0;
while(str[i] == ' ')
i ++;
long long ans = 0, m = 1;
if(str[i] == '-')
m = -1;
else if(str[i] == '+')
m = 1;
else if(str[i] >= '0' && str[i] <= '9')
ans = ans * 10 + str[i] - '0';
else
return ans;
for(i = i+1; i<str.size(); ++ i)
{
if(str[i] >= '0' && str[i] <='9')
ans = ans * 10 + str[i] - '0';
else
return ans * m;
if(ans > INT_MAX)
{
if(m == 1)
return INT_MAX;
else
return INT_MIN;
}
}
return ans * m;
}
};