亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

[Leetcode] String to Integer (atoi) 字符串轉(zhuǎn)整數(shù)

Astrian / 1570人閱讀

摘要:通用方法復(fù)雜度時(shí)間空間思路字符串題一般考查的都是邊界條件特殊情況的處理。所以遇到此題一定要問(wèn)清楚各種條件下的輸入輸出應(yīng)該是什么樣的。

String to Integer (atoi)
  

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.

通用方法 復(fù)雜度

時(shí)間 O(n) 空間 O(1)

思路

字符串題一般考查的都是邊界條件、特殊情況的處理。所以遇到此題一定要問(wèn)清楚各種條件下的輸入輸出應(yīng)該是什么樣的。這里已知的特殊情況有:

能夠排除首部的空格,從第一個(gè)非空字符開始計(jì)算

允許數(shù)字以正負(fù)號(hào)(+-)開頭

遇到非法字符便停止轉(zhuǎn)換,返回當(dāng)前已經(jīng)轉(zhuǎn)換的值,如果開頭就是非法字符則返回0

在轉(zhuǎn)換結(jié)果溢出時(shí)返回特定值,這里是最大/最小整數(shù)

注意

檢查溢出時(shí)最大整數(shù)要先減去即將加的最末位再除以10,來(lái)處理"2147483648"類似的情況

可以參考glibc中stdlib/atoi.c的實(shí)現(xiàn)方法

代碼
javapublic class Solution {
    public int myAtoi(String str) {
        str = str.trim();
        int result = 0;
        boolean isPos = true;
        for(int i = 0; i < str.length(); i++){
            char c = str.charAt(i);
            if(i==0 && (c=="-"||c=="+")){
                isPos = c=="+"?true:false;
            } else if (c>="0" && c<="9"){
                // 檢查溢出情況
                if(result>(Integer.MAX_VALUE - (c - "0"))/10){
                    return isPos? Integer.MAX_VALUE : Integer.MIN_VALUE;
                }
                result *= 10;
                result += c - "0";
            } else {
                return isPos?result:-result;
            }
        }
        return isPos?result:-result;
    }
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/64387.html

相關(guān)文章

  • Leetcode 8 String to Integer (atoi)

    摘要:難度是標(biāo)準(zhǔn)庫(kù)中的一個(gè)函數(shù)可以將字符串表示的整數(shù)轉(zhuǎn)換為現(xiàn)在要求我們自己來(lái)實(shí)現(xiàn)它解題過(guò)程中主要有以下兩點(diǎn)需要注意字符串開頭可能出現(xiàn)或者需要處理使用來(lái)記錄中間結(jié)果防止溢出下面是的解法 Implement atoi to convert a string to an integer. Hint: Carefully consider all possible input cases. If ...

    cod7ce 評(píng)論0 收藏0
  • July 算法習(xí)題 - 符串2 + Leetcode 8,9

    摘要:判斷一條單向鏈表是不是回文解法可以借助棧,將遍歷到的前半段鏈表節(jié)點(diǎn)放入棧,后半段每當(dāng)遍歷到一個(gè),都要與出棧的節(jié)點(diǎn)相比較。如果中間出現(xiàn)不相等的情況,則不是回文。 [July 程序員編程藝術(shù):面試和算法心得題目及習(xí)題][1] 字符串轉(zhuǎn)換成整數(shù) also Leetcode 8 String to Integer (atoi) 題目描述 輸入一個(gè)由數(shù)字組成的字符串,把它轉(zhuǎn)換成整...

    timger 評(píng)論0 收藏0
  • 實(shí)現(xiàn)atoi函數(shù)(string轉(zhuǎn)integer)

    摘要:實(shí)現(xiàn)函數(shù)轉(zhuǎn)思路利用內(nèi)置的函數(shù)可以將字符串快速轉(zhuǎn)換成型利用是否拋出異常來(lái)快速判斷能否被轉(zhuǎn)換成,進(jìn)而迅速確定輸入字符串中第一個(gè)非數(shù)字字符的位置需要注意處理符號(hào)的問(wèn)題代碼如果是或者但是會(huì)拋出異常,此時(shí)返回由于的沒(méi)有取值上限,如果規(guī)定為 實(shí)現(xiàn)atoi函數(shù)(string轉(zhuǎn)integer) String to Integer (atoi) Implement atoi to convert a ...

    leanote 評(píng)論0 收藏0
  • LeetCode 之 JavaScript 解答第8題 —— 符串轉(zhuǎn)整數(shù)String to

    摘要:當(dāng)我們尋找到的第一個(gè)非空字符為正或者負(fù)號(hào)時(shí),則將該符號(hào)與之后面盡可能多的連續(xù)數(shù)字組合起來(lái),作為該整數(shù)的正負(fù)號(hào)假如第一個(gè)非空字符是數(shù)字,則直接將其與之后連續(xù)的數(shù)字字符組合起來(lái),形成整數(shù)。數(shù)字前正負(fù)號(hào)要保留。 Time:2019/4/19Title: String To IntegerDifficulty: MediumAuthor: 小鹿 題目:String To Integer(字...

    zhisheng 評(píng)論0 收藏0
  • #yyds干貨盤點(diǎn)#“愚公移山”的方法解atoi,自以為巧妙!

    摘要:若函數(shù)不能執(zhí)行有效的轉(zhuǎn)換,返回。如果數(shù)值超過(guò)可表示的范圍,則返回或。示例輸入輸出解釋轉(zhuǎn)換截止于數(shù)字,因?yàn)樗南乱粋€(gè)字符不為數(shù)字。 這是我參與11月更文挑戰(zhàn)的第12天。一、寫在前面LeetCode 第一題兩數(shù)之和傳輸門:聽說(shuō)你還在寫雙層for循環(huán)解兩數(shù)之和?LeetCode 第二題兩數(shù)之和傳輸門:兩個(gè)排序數(shù)組的中...

    番茄西紅柿 評(píng)論0 收藏2637

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<