题意
写一个自己的atoi函数,即把一个字符串转换成int类型的数
思路
在一遍一遍地踩坑中寻找AC。
代码
class Solution {
public:
int myAtoi(string str) {
str.erase(0,str.find_first_not_of(" "));
if (str.size() == 0 || str[0] != '+' && str[0] != '-'
&& str[0] < '0' && str[0] > '9')
return 0;
long long res = 0;
bool flag1 = true, flag2 = false;;
int i = str[0]=='+'?1:0;
if (str[0] == '-') flag1 = false, i = 1;
for (; i < str.size(); i++)
{
if (str[i] == '0' && !flag2)
{
str.erase(i, 1);
i--; continue;
}
if (str[i] < '0' || str[i] > '9') break;
if (i > 10)
{
if (flag1) return INT_MAX;
else return INT_MIN;
}
res *= 10;
res += str[i]-48;
if (res > 0) flag2 = true;
}
if (!flag1) res = -res;
if (res < INT_MIN) return INT_MIN;
if (res > INT_MAX) return INT_MAX;
return res;
}
};
本文深入探讨了如何从零开始实现一个atoi函数,用于将字符串转换为整数。通过详细的代码解析,展示了处理各种边界情况和错误输入的方法,如符号识别、前导空格跳过、溢出检查等。
528

被折叠的 条评论
为什么被折叠?



