Implement atoi to convert a string to an integer.
具体的网上已经有很多解法
这里主要就是注意一些地方(最重要的就是返回值一开始最好赋值成为long long 因为有可能会越界)
然后就是一些特殊情况的分析了
class Solution {
public:
int atoi(string str) {
if(str.length() == 0)
{
return 0;
}
long long retVal = 0;
int length = str.length();
int i = 0;
char signFlag = 1;
while(str[i] == ' ')
{
i++;
}
if(str[i] == '-')
{
i++;
signFlag = -1;
}
else if(str[i] == '+')
{
i++;
}
for(;i < length; i++)
{
int n = str[i]-'0';
if((n < 0) || (n > 9))
{
return retVal*signFlag; //<出现特殊符号
}
retVal = retVal*10+n;
if(retVal*signFlag > INT_MAX)
{
return INT_MAX;
}
else if(retVal*signFlag < INT_MIN)
{
return INT_MIN;
}
}
return retVal*signFlag;
}
};