LeetCode 8 String to Integer(atoi)
阿新 • • 發佈:2018-11-17
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;
}
};