class Solution {
public:
int myAtoi(string s) {
if(s.empty()) return 0;
int i = 0;
while(s[i] ==' ')
++i;
s = s.substr(i);
int positivenum = 0,negativenum = 0,numnum = 0;
long long int res = 0;
for(i = 0; i < s.size();i++)
{
if(s[i] == '-')
{
if(positivenum == 0 && negativenum == 0 && numnum == 0)
negativenum = 1;
else
break;
}
else if(s[i] == '+')
{
if(positivenum == 0&&negativenum == 0&&numnum == 0)
positivenum = 1;
else
break;
}
else if(std::isdigit(s[i]))
{
res = res *10 + s[i] - '0';
if(res > INT_MAX)
break;
numnum = 1;
}
else
break;
}
if(negativenum == 1)
res = -1 * res;
if(res < 0)
res = std::max(res, (long long)INT_MIN);
if(res > 0)
res = std::min(res, (long long)INT_MAX);
return res;
}
};
LeetCode刷题:8. 字符串转换整数 (atoi)
最新推荐文章于 2025-06-03 18:15:13 发布