1. 程式人生 > >LeetCode 8 String to Integer(atoi)

LeetCode 8 String to Integer(atoi)

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; }
};