码迷,mamicode.com
首页 > 其他好文 > 详细

String to Integer (atoi)

时间:2016-01-03 22:14:06      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:

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.

Update (2015-02-10):
The signature of the C++ function had been updated. If you still see your function signature accepts a const char * argument, please click the reload button  to reset your code definition.

spoilers alert... click to show requirements for atoi.

 

Subscribe to see which companies asked this question

 
class Solution {
public:
    /*
     * 这个问题需要考虑很多边界情况
     * 1.如果str为空,返回空
     * 2.如果str前面有空格,过滤掉空格
     * 3.如果str > INT_MAX ,返回 INT_MAX
     * 4.如果str < INT_MIN, 返回 INT_MIN
     * 5.如果str格式不匹配,返回已经匹配成功的部分
     */
    int myAtoi(string str) {
        int begin = 0;
        int end = str.length() - 1;
        //过滤掉左右的空格
        while (str[begin] ==  ) {
            begin++;
        }

        while (str[end] ==  ) {
            end--;
        }

        //设置负号
        bool minus = false;
        if (- == str[begin]) {
            minus = true;
            begin++;
        } else if (+ == str[begin]) {
            minus = false;
            begin++;
        }

        double res = 0;
        for (begin; begin<=end; begin++) {
            if (str[begin] >= 0 && str[begin] <= 9) {
                res = res * 10 + str[begin] - 0;
            } else {
                break;
            }
        }

        if (!minus) {
            if (res > INT_MAX) {
                res = INT_MAX;
            }
        } else {
            res = res * -1;
            if (res < INT_MIN) {
                res = INT_MIN;
            }
        }

        return (int)res;
    }
};

 

String to Integer (atoi)

标签:

原文地址:http://www.cnblogs.com/SpeakSoftlyLove/p/5097125.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!