1. 程式人生 > >javascript 字串轉整數 (atoi)LeetCod-8

javascript 字串轉整數 (atoi)LeetCod-8

題目:

實現 atoi,將字串轉為整數。

在找到第一個非空字元之前,需要移除掉字串中的空格字元。如果第一個非空字元是正號或負號,選取該符號,並將其與後面儘可能多的連續的數字組合起來,這部分字元即為整數的值。如果第一個非空字元是數字,則直接將其與之後連續的數字字元組合起來,形成整數。

字串可以在形成整數的字元後面包括多餘的字元,這些字元可以被忽略,它們對於函式沒有影響。

當字串中的第一個非空字元序列不是個有效的整數;或字串為空;或字串僅包含空白字元時,則不進行轉換。

若函式不能執行有效的轉換,返回 0。

說明:

假設我們的環境只能儲存 32 位有符號整數,其數值範圍是 [−231,  231 − 1]。如果數值超過可表示的範圍,則返回  INT_MAX (231 − 1) 或 INT_MIN (−231) 。

示例 1:
輸入: "42"
輸出: 42
示例 2:
輸入: "   -42"
輸出: -42
解釋: 第一個非空白字元為 '-', 它是一個負號。
    我們儘可能將負號與後面所有連續出現的數字組合起來,最後得到 -42 。
示例 3:
輸入: "4193 with words"
輸出: 4193
解釋: 轉換截止於數字 '3' ,因為它的下一個字元不為數字。
示例 4:
輸入: "words and 987"
輸出: 0
解釋: 第一個非空字元是 'w', 但它不是數字或正、負號。因此無法執行有效的轉換。
示例 5:
輸入: "-91283472332"
輸出: -2147483648
解釋: 數字 "-91283472332" 超過 32 位有符號整數範圍。 因此返回 INT_MIN (−231) 。

分析:正則表示式配合字串方法,一個for迴圈搞定

var myAtoi = function(str) {
    str=str.replace(/(^\s*)|(\s*$)/g, "");//去掉字串最前面的空格,中間的不用管
    var str1="";
    for(i=0;i<str.length;i++){
        if((str.charAt(i)=="-"||str.charAt(i)=="+")&&i==0){
            str1=str1.concat(str.charAt(i))
        }//如果“+”“-”號在最前面
        else if(/^\d+$/.test(str.charAt(i))){
            str1=str1.concat(str.charAt(i))
        }//用字串儲存值
        else{
            break//直接跳出for迴圈
        };
    }
        if(str1-0>2147483647){
            return 2147483647
        }                      //str-0   字串化為陣列最簡單也是最常用的方法
        else if(str1-0<-2147483648){
            return -2147483648
        }
        if(isNaN(str1-0)) return 0//"+"/"-"這種情況,返回0
    return str1-0            
};

相關推薦

javascript 字串整數 (atoi)LeetCod-8

題目: 實現 atoi,將字串轉為整數。 在找到第一個非空字元之前,需要移除掉字串中的空格字元。如果第一個非空字元是正號或負號,選取該符號,並將其與後面儘可能多的連續的數字組合起來,這部分字元即為整數的值。如果第一個非空字元是數字,則直接將其與之後連續的數字字元組合起

【LeetCode】8. 字串整數 (atoi)

題目連結:https://leetcode-cn.com/problems/string-to-integer-atoi/description/ 題目描述 實現 atoi,將字串轉為整數。 該函式首先根據需要丟棄任意多的空格字元,直到找到第一個非空格字元為止。如果第一個非空

LeetCode 8. 字串整數 (atoi) Python

實現 atoi,將字串轉為整數。 在找到第一個非空字元之前,需要移除掉字串中的空格字元。如果第一個非空字元是正號或負號,選取該符號,並將其與後面儘可能多的連續的數字組合起來,這部分字元即為整數的值。如果第一個非空字元是數字,則直接將其與之後連續的數字字元組合起

LeetCode 8字串整數 (atoi)

8. 字串轉整數 (atoi) 實現 atoi,將字串轉為整數。 在找到第一個非空字元之前,需要移除掉字串中的空格字元。如果第一個非空字元是正號或負號,選取該符號,並將其與後面儘可能多的連續的數字組合起來,這部分字元即為整數的值。如果第一個非空字元是數字,則直接將其與

leetcode-8. 字串整數 (atoi)

/** * @param {string} str * @return {number} */ var myAtoi = function(str) { let max = Math.po

LeetCode 8. 字串整數 (atoi)

public int myAtoi(String str) { //剔除首位空白字元 str = str.trim(); if (str.equals("")) return 0; char[] ans = st

LeetCode(8)—— 字串整數 (atoi)

題目內容 描述 實現 atoi,將字串轉為整數。 在找到第一個非空字元之前,需要移除掉字串中的空格字元。如果第一個非空字元是正號或負號,選取該符號,並將其與後面儘可能多的連續的數字組合起來,這部分字元即為整數的值。如果第一個非空字元是數字,則直接將其與之後連續的數字字元組合起

leetcode 8.字串整數(atoi)

思路:先排除掉字串中的空格,然後如果第一個非空字元是整好或負號則記錄下來,再將前面所有連續數字轉換成整數即可。class Solution { public: int myAtoi(string str) { long temp=0; int s=0;

LeetCode--[字串]8. 字串整數 (atoi)

實現 atoi,將字串轉為整數。 在找到第一個非空字元之前,需要移除掉字串中的空格字元。如果第一個非空字元是正號或負號,選取該符號,並將其與後面儘可能多的連續的數字組合起來,這部分字元即為整數的值。如果第一個非空字元是數字,則直接將其與之後連續的數字字元組合起

8. 字串整數 (atoi)

知乎ID: 碼蹄疾 碼蹄疾,畢業於哈爾濱工業大學。 小米廣告第三代廣告引擎的設計者、開發者; 負責小米應用商店廣告平臺後端研發; 主導小米廣告引擎多個模組重構; 關注推薦、搜尋、計算廣告領域相關知識; 題目 實現 a

【LeetCode】Python 8.字串整數 (atoi)

字串轉整數 (atoi) 題目:實現 atoi,將字串轉為整數。 在找到第一個非空字元之前,需要移除掉字串中的空格字元。如果第一個非空字元是正號或負號,選取該符號,並將其與後面儘可能多的連續的數字組合起來,這部分字元即為整數的值。如果第一個非空字元是數字,則

[Swift]LeetCode8. 字串整數 (atoi) | String to Integer (atoi)

Implement atoi which converts a string to an integer. The function first discards as many whitespace characters as necessary until the firs

[LeetCode]利用Double類完成字串整數 (atoi)

Double.parseDouble(String str) 能把一個String型別的變數轉換為Double型別,而且利用丟擲的異常我們還可以很好的處理無法轉換的字串,故其非常適合做atoi,而之所以不用Integer.parseInteger是因為我們可能

LeetCode題目--字串整數 (atoi)(python實現)

題目 實現 atoi,將字串轉為整數。 該函式首先根據需要丟棄任意多的空格字元,直到找到第一個非空格字元為止。如果第一個非空字元是正號或負號,選取該符號,並將其與後面儘可能多的連續的數字組合起來,這部分字元即為整數的值。如果第一個非空字元是數字,則直接將其與之後連續的數字字元組

字串整數 (atoi) go語言

實現 atoi,將字串轉為整數。 該函式首先根據需要丟棄任意多的空格字元,直到找到第一個非空格字元為止。如果第一個非空字元是正號或負號,選取該符號,並將其與後面儘可能多的連續的數字組合起來,這部分字元即為整數的值。如果第一個非空字元是數字,則直接將其與之後連續的數字字元組合起來,形成整數。 字串

字串整數 (atoi)

實現 atoi,將字串轉為整數。 該函式首先根據需要丟棄任意多的空格字元,直到找到第一個非空格字元為止。如果第一個非空字元是正號或負號,選取該符號,並將其與後面儘可能多的連續的數字組合起來,這部分字元即為整數的值。如果第一個非空字元是數字,則直接將其與之後連續的數字字元

leedcode 第八題 字串整數 (atoi)

class Solution { public: int myAtoi(string str) { int FirstIs=0; string result; int stop; int Num

LeetCode004:字串整數 (atoi)

一、寫在前面 LeetCode 第一題兩數之和傳輸門:LeetCode001:兩數之和 LeetCode 第二題兩個排序陣列的中位數傳輸門:LeetCode002:兩個排序陣列的中位數 LeetCode 第三題最長迴文子串傳輸門:eetCode003:最長迴文子

刷爆LeetCode之 字串整數 (atoi)

 字串轉整數 (atoi) 實現 atoi,將字串轉為整數。 該函式首先根據需要丟棄任意多的空格字元,直到找到第一個非空格字元為止。如果第一個非空字元是正號或負號,選取該符號,並將其與後面儘可能多的連續的數字組合起來,這部分字元即為整數的值。如果第一個非空字元是數字,則直

Leetcode8.String to Integer (atoi)字串整數(atoi)

實現 atoi,將字串轉為整數。 該函式首先根據需要丟棄任意多的空格字元,直到找到第一個非空格字元為止。如果第一個非空字元是正號或負號,選取該符號,並將其與後面儘可能多的連續的數字組合起來,這部分字元即為整數的值。如果第一個非空字元是數字,則直接將其與之後連續的數字字元組合