LeetCode-008-字符串轉(zhuǎn)換整數(shù) (atoi)

題目描述:請你來實(shí)現(xiàn)一個 myAtoi(string s) 函數(shù),使其能將字符串轉(zhuǎn)換成一個 32 位有符號整數(shù)(類似 C/C++ 中的 atoi 函數(shù))。
函數(shù) myAtoi(string s) 的算法如下:
?2^{31}, ?2^{31} ? 1] ,需要截?cái)噙@個整數(shù),使其保持在這個范圍內(nèi)。具體來說,小于?2^{31} 的整數(shù)應(yīng)該被固定為 ?2^{31},大于 2^{31} ? 1 的整數(shù)應(yīng)該被固定為 2^{31} ? 1 。 返回整數(shù)作為最終結(jié)果。 注意:
檢查下一個字符(假設(shè)還未到字符末尾)為正還是負(fù)號,讀取該字符(如果有)。 確定最終結(jié)果是負(fù)數(shù)還是正數(shù)。 如果兩者都不存在,則假定結(jié)果為正。 讀入下一個字符,直到到達(dá)下一個非數(shù)字字符或到達(dá)輸入的結(jié)尾。字符串的其余部分將被忽略。 將前面步驟讀入的這些數(shù)字轉(zhuǎn)換為整數(shù)(即,"123" -> 123, "0032" -> 32)。如果沒有讀入數(shù)字,則整數(shù)為 0 。必要時更改符號(從步驟 2 開始)。 如果整數(shù)數(shù)超過 32 位有符號整數(shù)范圍 [本題中的空白字符只包括空格字符 ' ' 。 除前導(dǎo)空格或數(shù)字后的其余字符串外,請勿忽略 任何其他字符。
示例說明請見LeetCode官網(wǎng)。
來源:力扣(LeetCode) ??
鏈接:https://leetcode-cn.com/problems/string-to-integer-atoi/ ??
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
解法一:遍歷字符串
從頭往后遍歷字符串,獲取字符串前面的數(shù)字,最后轉(zhuǎn)化成相應(yīng)的整數(shù)。
注意點(diǎn):做的時候考慮不全,把空格去掉后有可能是空串,結(jié)果就是數(shù)組越界了,邊界問題得多考慮一些。
標(biāo)簽: