标签:
这道题知道了用long long 这种变量类型,从最初的128ms优化到68ms
代码如下:
class Solution {
public:
int atoi(const char *str) {
if(str == NULL)
return 0;
int i=0;
int flag =1;
string tempstr;
while(str[i] != ‘\0‘)
{
if(str[i] == ‘ ‘)
i++;
else
break;
}
if(str[i] == ‘-‘)
{
flag =-1;
i++;
}
else if(str[i] == ‘+‘)
{
i++;
}
while(str[i] != ‘\0‘)
{
if(str[i] == ‘0‘)
i++;
else
break;
}
long long data = 0;
while(str[i] != ‘\0‘)
{
if(str[i]>=‘0‘ && str[i]<=‘9‘)
{
data = data * 10 + flag * (str[i]- ‘0‘);
if(flag > 0 && data > numeric_limits<int>::max())
return numeric_limits<int>::max();
if(flag < 0 && data < numeric_limits<int>::min())
return numeric_limits<int>::min();
}
else
{
break;
}
i++;
}
return data;
}
};
标签:
原文地址:http://www.cnblogs.com/xgcode/p/4197451.html