美文网首页
leetcode #8 String to Integer (a

leetcode #8 String to Integer (a

作者: huntriver | 来源:发表于2017-07-06 14:52 被阅读0次

    Implement atoi to convert a string to an integer.

    • 题目大意
      题目描述非常简单,就是实现c语言中的atoi 函数。这个函数是将一个字符串转成一个int 整数。
    首先分析一下atoi这个函数的几个特性:
    • 该函数会跳过所有该字符串开头的空格
    • 该函数会忽略第一个非数字字符后面的所有字符。
    • 返回的是一个int 类型 (-2147483648 ~ 2147483647)

    有了以上分析,代码就非常简单了

    /**
     * @param {string} str
     * @return {number}
     */
    var myAtoi = function (str) {
        let i = 0;
        let ans = 0;
        while (str[i] === ' ' && i < str.length) {  //忽略所有开头的空格
            i++;
        }
        if (i >= str.length) return ans;
        let sign = 1;
        if (str[i] === '+') {  //判断符号
            sign = 1;
            i++;
        }
        else {
            if (str[i] === '-') {
                sign = -1;
                i++;
            }
        }
        while (i < str.length && str[i] >= '0' && str[i] <= '9') {  //遍历所有数字位
            ans = +str[i++] + ans * 10;
        }
    
        ans *= sign;
        ans = ans > 2147483647 ? 2147483647 : ans;  //使结果在整形范围内
        ans = ans < -2147483648 ? -2147483648 : ans;
        return ans;
    };
    

    相关文章

      网友评论

          本文标题:leetcode #8 String to Integer (a

          本文链接:https://www.haomeiwen.com/subject/kruhhxtx.html