leetcode8 字符串转换为整数

最笨的办法实现 一步步判断

/**
 * @param {string} s
 * @return {number}
 */
var myAtoi = function(s) {
    s = s.trim()
    let re
    if(!isNaN(parseInt(s)) && s.length == 1){
        return parseInt(s)
    }
    if(isNaN(parseInt(s)) && s.length == 1){
        return 0
    }
    if(s == "" ){
        return 0
    }
    if(s.charAt(0) == "-"){
        s = s.substring(1)
        if(isNaN(s.charAt(0))){ //不是数字
            return 0
        }else{
           re =  -getNumber(s,false)
        }
    }else if(s.charAt(0) == "+"){
        s = s.substring(1)
        if(isNaN(s.charAt(0)) || s.charAt(0) == " "){ //不是数字
            return 0
        }else{
           re =  getNumber(s,true)
        }
    }else {
        if(isNaN(s.charAt(0))){ //不是数字
            return 0
        }else{
           re =  getNumber(s,true)
        }
    }

    return re
};
function getNumber(str,bo){
    str = str.split("")
    let res = ""
    let l = str.length
    let i = 0
    while(i<l){
        if(!isNaN(parseInt(str[i]))){ // 是数字
            res += str[i]
        }else{
            break
        }
        i++
    }
    let es = parseInt(res)
    if(bo == false){ //负数
        if(es > Math.pow(2,31)){
            es = Math.pow(2,31)
        }
    }
    if(bo == true){ //正数
        if(es >= Math.pow(2,31)){
            es = Math.pow(2,31)-1
        }
    }
    return es
}
 
posted @ 2021-08-29 11:14  TangTaue  阅读(26)  评论(0编辑  收藏  举报