class Solution {
public:
int myAtoi(string str) {
int left = 0, right = str.size() - 1;
int flag = 0;//标记字符串是正数还是负数
long result = 0;
while (str[left] == ' ')//去除字符串两端的空格;
left++;
while (str[right] == ' ')
right--;
if (str[left] == '-')
{
flag = -1;
left++;
}
else if (str[left] == '+')
{
left++;
flag = 1;
}
else
flag = 1;
for (int i = left; i <= right; i++)
{
if (str[i] == '-' || str[i] == '+')
return 0;
if (str[i] >= '0'&&str[i] <= '9')
result = result * 10 + (str[i] - 48); //'0'=48
else if (str[i + 1] >= '0'&&str[i+1] <= '9')//如果在数字字符中间有非空格的其他字符,则返回前面的结果;
break;
if (flag == -1 && result*flag < INT_MIN)
return INT_MIN;
if (flag == 1 && result*flag>INT_MAX)
return INT_MAX;
}
return result*flag;
}
};
8. String to Integer (atoi)
最新推荐文章于 2024-07-19 19:11:19 发布