8 String to Integer(atoi)
按照题目的要求:你要先越过前面的空格。
之后可能遇到’+’’-’ [0-9],other,也照常处理即可
还要注意溢出问题:这里我用了long long(感觉有点作弊了QwQ)。当int溢出了,long long肯定没溢出.所以你在转换时:发现long long值大于INT_MAX时,就可以停止转换了。因为int已经溢出了
class Solution {
public:
int myAtoi(string str) {
int i=0,len = str.size();
long long result=0;
while(i<len && str[i]==' ')
i++;
bool flag = true;
if(str[i]=='+' || str[i]=='-')
flag = str[i++] =='+'?true:false;
else if(!isdigit(str[i]))
return 0;
while(i<len && isdigit(str[i])){
result = result*10 + str[i]-'0';
if(result >INT_MAX)
break;
i++;
}
result *= flag?1:-1;
if(result>INT_MAX)
return INT_MAX;
else if(result<INT_MIN)
return INT_MIN;
else
return result;
}
};