String to Integer (atoi)

来源:互联网 发布:淘宝修改论文多少钱 编辑:程序博客网 时间:2024/04/20 08:01

Implement atoi to convert a string to an integer.

Hint: Carefully consider all possible input cases. If you want a challenge, please do not see below and ask yourself what are the possible input cases.

Notes: It is intended for this problem to be specified vaguely (ie, no given input specs). You are responsible to gather all the input requirements up front.

class Solution {public:    int atoi(const char *str) {        // Start typing your C/C++ solution below        // DO NOT write int main() function        int flag = 1;        int value = 0;        int number = 0;        bool start = false;        const char* p = str;        while (*p) {            if (*p == '-') {                flag = -1;                ++p;                if (*p < '0' || *p > '9') {                    return 0;                }                continue;            } else if (*p == '+') {                flag = 1;                ++p;                if (*p < '0' || *p > '9') {                    return 0;                }                continue;            } else if (*p >= '0' && *p <= '9'){                start = true;                number = *p - '0';                if (value > 214748364) {                    if (flag == 1) {                       return 2147483647;                    } else {                       return -2147483648;                    }                }                value = value * 10 + number;            } else if (*p == ' '){                if (start) {                    break;                } else {                    ++p;                    continue;                }            } else {                break;            }            ++p;        }        int result = value * flag;        if (result * flag >= 0) {            return result;        } else {            if (flag == 1) {                return 2147483647;            } else {                return -2147483648;            }        }    }};


原创粉丝点击