class Solution {
public:
int myAtoi(string str) {
int len=str.length();
int i=0;
while(i<len&&str[i]==' ')
i++;
str=str.substr(i);//erase all white spaces
int sign=1;
if(str[0]=='-')
{
sign=-1;
str=str.substr(1);//erase negative character
}
else if(str[0]=='+')
str=str.substr(1);//erase positive character
len=str.length();
int res=0;
for(int i=0;i<len;i++)
{
if(str[i]<'0'||str[i]>'9')
break;
if(sign==1&&(INT_MAX-str[i]+'0')/10<res)
{
res=INT_MAX;
break;
}
else if(sign==-1&&(INT_MIN+str[i]-'0')/10>-res)
{
sign=1;
res=INT_MIN;
break;
}
res=res*10+str[i]-'0';
}
return res*sign;
}
};
leetcode 8: Sting to Integer (atoi)
最新推荐文章于 2022-10-25 23:47:32 发布