Leetcode String to Integer (atoi)

来源:互联网 发布:mysql nvl函数用法 编辑:程序博客网 时间:2024/06/07 01:59

1. 如果输入不合法,输出0

2. 正负判断

3. 溢出输出INT_MAX or INT_MIN

4. 忽略最后的字母

代码还是比较简洁的,一次AC吐舌头

    bool isDigit(char c){        return c >= '0' && c <= '9';        }        int atoi(const char *str) {        bool neg = false;        long long ans = 0;        const int n = strlen(str);        int i = 0;        int valid_digit = 0;        while(i < n && str[i] == ' ')            i++;        // plus or negative        if(str[i] == '+' || str[i] == '-'){            if(str[i] == '-')                neg = true;            i++;        }        while(i < n && isDigit(str[i])){            ans *= 10;            ans += (int) (str[i] - '0');            i++;            valid_digit++;            if(valid_digit >= 11)                break;        }        if(neg)            ans = -ans;        if(ans > INT_MAX)            return INT_MAX;        if(ans < INT_MIN)            return INT_MIN;        return ans;            }


0 0
原创粉丝点击