题目:将字符串转换为数字
分析:主要注意正负号、溢出等判断。
答案:
class Solution {
public:
int atoi(string str) {
long long result = 0;
int sign = 1;
int i = 0;
int max32 = 0x7fffffff;
int min32 = 0x80000000;
if (str.length() < 1)
return 0;
while (str[i] == ' ')
i++;
if (str[i] == '+')
i++;
else
if (str[i] == '-')
{
sign = -1;
i++;
}
for (; i < str.length(); i++)
{
if (str[i] <= '9' && str[i] >= '0')
result = result * 10 + str[i] - '0';
else
break;
if (result > max32)
{
if (sign > 0)
return max32;
else
return min32;
}
}
return result*sign;
}
};