與之前的文章 atoi類似,這道題多了 Leetcode 題目的一些限制,條件有所改變,隻需注意條件即可。
class Solution {
public:
int myAtoi(string str)
{
if(str.length() == )
return ;
long ret = ;
int flag = ;
//跳過空格
int i = ;
while(isspace(str[i]))
++i;
//符号
if(str[i] == '-')
{
flag = ;
++i;
}
else if(str[i] == '+')
{
flag = ;
++i;
}
//判斷非空的第一個字元
if(str[i] < '0' || str[i] > '9')
return ;
for(;i < str.length(); ++i)
{
if(str[i] >= '0' && str[i] <= '9')
ret = ret * + str[i] - '0';
else
break;
if(ret > INT_MAX && flag == )
return INT_MAX;
if(ret > INT_MAX && flag == )
return INT_MIN;
}
if(flag == )
return ret * (-);
else
return ret;
}
};