class Solution {
public:
int myAtoi(string str) {
string x = "";
int n = str.length();
int l=0,r=n-1;
while(str[l]==' '&&l<n)l++;
while(str[r]==' '&&r>0)r--;
int be =0;
if(str[l] == '+' || str[l] == '-')
be=1;
long long ans = 0;
int flag = 1;
if(str[l] == '-') flag = -1;
for(int i = be+l;i <= r; i++){
if(str[i] < '0' || str[i] > '9') break;
ans = ans*10+str[i]-'0';
if(ans > 2147483647 && flag == 1) return 2147483647;
else if(ans > 2147483648 && flag == -1) return -2147483648;
}
return ans*flag;
}
};
本文介绍了一个C++实现的atoi函数,该函数能够将字符串转换为整数,并且考虑了边界条件和非法输入的情况。文章详细展示了如何通过遍历字符串来忽略前导空格、处理正负号以及字符到数字的转换。

381

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



