LeeCode 8. String to Integer (atoi)

image.png
image.png
// overflow
// /**
//  * @param {string} str
//  * @return {number}
//  */
// var myAtoi = function (str) {
//     // 最大位數(shù),記錄位,返回值,開始值,符號位
//     let max = 0,
//         i = 0,
//         n,
//         start = 0,
//         j = 0,
//         flag = 0
//     str = str.trim()
//     // 單個符號
//     if ((str.length == 1) && (str > '9' || str < '0')) {
//         console.log(0)
//         return
//     }
//     if ((str.length == 1) && (str.charAt(0) < '9' && str.charAt(0) > '0')) {
//         console.log(Number(str))
//         return
//     }
//     // +/-加非數(shù)字
//     if (str.charAt(0) == '-' || str.charAt(0) == '+') {
//         if ('0' > str.charAt(1) || str.charAt(i) > '9') {
//             console.log(0)
//             return
//         }
//         if (str.charAt(0) == '-') {
//             flag = 1
//         }
//         i = 1
//         max = 1
//         str = str.substring(1)
//     }
//     while (i < str.length) {
//         if ('0' <= str.charAt(i) && str.charAt(i) < '9') {
//             if (str.charAt(i) == '0' && j == 0) {
//                 i++
//                 start++
//                 j = 1
//                 continue
//             } else {
//                 max++
//                 i++
//             }
//         } else {
//             break
//         }
//     }
//     n = Number(str.substring(start, start + max)) * ((-1) ** flag)
//     if (n > 2147483647) {
//         console.log(2147483647)
//         return        
//     } 
//     if (n < -2147483648) {
//         console.log(-2147483648)
//         return        
//     } 
//     console.log(n)
//     return    
// };

/**
 * @param {string} str
 * @return {number}
 */
var myAtoi = function (str) {
    let n = Number.parseInt(str)

    if (n > 2147483647) {
        n = 2147483647
    }
    if (n < -2147483648) {
        n = -2147483648
    }

    return Number.isNaN(n)? 0: n
};

值得注意的是,Number(str)僅支持2^ 53。。。否則會溢出。Number.parseInt(xxx)不會溢出。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line),也就是一...
    悟名先生閱讀 4,569評論 0 13
  • 前言 最先接觸編程的知識是在大學(xué)里面,大學(xué)里面學(xué)了一些基礎(chǔ)的知識,c語言,java語言,單片機的匯編語言等;大學(xué)畢...
    oceanfive閱讀 3,395評論 0 7
  • 文/晨屹 01 我希望有個如你一般的人。 如這山間清晨一般明亮清爽的人, 如奔赴古城道路上陽光一般的人, 溫暖而不...
    晨屹閱讀 716評論 52 26
  • 12369,這個號碼就是城市衛(wèi)生環(huán)保舉報熱線,全國的。 上周有一天中午,在公司附近吃午飯的時候路過一家餐館,門面不...
    劉英滕閱讀 1,662評論 9 20
  • 【行動學(xué)習(xí)】讓你快速Get一個培訓(xùn)模式 近段時間在思考【金星特訓(xùn)營】【土星特訓(xùn)營】的運營模式,今日晨跑頭腦中閃現(xiàn)出...
    毛遂簡記閱讀 465評論 0 1

友情鏈接更多精彩內(nèi)容