摘要:通用方法復(fù)雜度時間空間思路字符串題一般考查的都是邊界條件特殊情況的處理。所以遇到此題一定要問清楚各種條件下的輸入輸出應(yīng)該是什么樣的。
String to Integer (atoi)
通用方法 復(fù)雜度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.
時間 O(n) 空間 O(1)
思路字符串題一般考查的都是邊界條件、特殊情況的處理。所以遇到此題一定要問清楚各種條件下的輸入輸出應(yīng)該是什么樣的。這里已知的特殊情況有:
能夠排除首部的空格,從第一個非空字符開始計算
允許數(shù)字以正負號(+-)開頭
遇到非法字符便停止轉(zhuǎn)換,返回當前已經(jīng)轉(zhuǎn)換的值,如果開頭就是非法字符則返回0
在轉(zhuǎn)換結(jié)果溢出時返回特定值,這里是最大/最小整數(shù)
注意檢查溢出時最大整數(shù)要先減去即將加的最末位再除以10,來處理"2147483648"類似的情況
可以參考glibc中stdlib/atoi.c的實現(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)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/64387.html
摘要:難度是標準庫中的一個函數(shù)可以將字符串表示的整數(shù)轉(zhuǎn)換為現(xiàn)在要求我們自己來實現(xiàn)它解題過程中主要有以下兩點需要注意字符串開頭可能出現(xiàn)或者需要處理使用來記錄中間結(jié)果防止溢出下面是的解法 Implement atoi to convert a string to an integer. Hint: Carefully consider all possible input cases. If ...
摘要:判斷一條單向鏈表是不是回文解法可以借助棧,將遍歷到的前半段鏈表節(jié)點放入棧,后半段每當遍歷到一個,都要與出棧的節(jié)點相比較。如果中間出現(xiàn)不相等的情況,則不是回文。 [July 程序員編程藝術(shù):面試和算法心得題目及習(xí)題][1] 字符串轉(zhuǎn)換成整數(shù) also Leetcode 8 String to Integer (atoi) 題目描述 輸入一個由數(shù)字組成的字符串,把它轉(zhuǎn)換成整...
摘要:實現(xiàn)函數(shù)轉(zhuǎn)思路利用內(nèi)置的函數(shù)可以將字符串快速轉(zhuǎn)換成型利用是否拋出異常來快速判斷能否被轉(zhuǎn)換成,進而迅速確定輸入字符串中第一個非數(shù)字字符的位置需要注意處理符號的問題代碼如果是或者但是會拋出異常,此時返回由于的沒有取值上限,如果規(guī)定為 實現(xiàn)atoi函數(shù)(string轉(zhuǎn)integer) String to Integer (atoi) Implement atoi to convert a ...
摘要:當我們尋找到的第一個非空字符為正或者負號時,則將該符號與之后面盡可能多的連續(xù)數(shù)字組合起來,作為該整數(shù)的正負號假如第一個非空字符是數(shù)字,則直接將其與之后連續(xù)的數(shù)字字符組合起來,形成整數(shù)。數(shù)字前正負號要保留。 Time:2019/4/19Title: String To IntegerDifficulty: MediumAuthor: 小鹿 題目:String To Integer(字...
摘要:若函數(shù)不能執(zhí)行有效的轉(zhuǎn)換,返回。如果數(shù)值超過可表示的范圍,則返回或。示例輸入輸出解釋轉(zhuǎn)換截止于數(shù)字,因為它的下一個字符不為數(shù)字。 這是我參與11月更文挑戰(zhàn)的第12天。一、寫在前面LeetCode 第一題兩數(shù)之和傳輸門:聽說你還在寫雙層for循環(huán)解兩數(shù)之和?LeetCode 第二題兩數(shù)之和傳輸門:兩個排序數(shù)組的中...
閱讀 1981·2021-11-23 09:51
閱讀 890·2021-11-19 09:40
閱讀 842·2021-10-27 14:20
閱讀 5042·2021-10-09 09:52
閱讀 3315·2021-10-09 09:44
閱讀 1742·2021-10-08 10:05
閱讀 5120·2021-09-09 11:47
閱讀 3496·2019-08-30 12:47