8. String to Integer (atoi)

8. String to Integer (atoi)

class Solution {
public:
    int myAtoi(string str) {
        int Max = (1<<31)-1, Min = -1<<31;
        int i = 0;
        int minus = 1;
        while(str[i] == ' ') i++;
        if(str[i] == '-'){
            minus = -1;
            i++;
        }
        else if(str[i] == '+') i++;
        if(!isdigit(str[i])) return 0;
        int j = i;
        while(isdigit(str[j])) j++;
        j--;
        int n = 0;
        for(int k = 0;i + k <= j;k++){
            n += pow(10,k)*(str[j-k]-'0');
            if(n < 0) return minus == -1 ? Min : Max;
        }
        return minus*n;
    }
};

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章