程式語言 - LeetCode - C++ - 8. String to Integer (atoi)



題目:


解答:

class Solution {
public:
    int myAtoi(string s) {
        int i = 0;
        int sign = 1;
        int len = s.size();
        long r = 0;

        for (i = 0; i < len; i++) {
            if (s[i] != ' ') {
                break;
            }
        }

        if ((i < len) && ((s[i] == '+') || (s[i] == '-'))) {
            sign = (s[i++] == '-') ? -1 : 1;
        }

        for (; i < len; i++) {
            if ((s[i] >= '0') && (s[i] <= '9')) {
                r = (r * 10) + (s[i] - '0');
                if (r > INT_MAX) {
                    return (sign == 1) ? INT_MAX : INT_MIN;
                }
            }
            else {
                break;
            }
        }
        return r * sign;
    }
};