Leetcode 8. 字符串转换整数 (atoi) (每日一题 20210615)
生活随笔
收集整理的這篇文章主要介紹了
Leetcode 8. 字符串转换整数 (atoi) (每日一题 20210615)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
請你來實現一個?myAtoi(string s)?函數,使其能將字符串轉換成一個 32 位有符號整數(類似 C/C++ 中的 atoi 函數)。函數?myAtoi(string s) 的算法如下:讀入字符串并丟棄無用的前導空格
檢查下一個字符(假設還未到字符末尾)為正還是負號,讀取該字符(如果有)。 確定最終結果是負數還是正數。 如果兩者都不存在,則假定結果為正。
讀入下一個字符,直到到達下一個非數字字符或到達輸入的結尾。字符串的其余部分將被忽略。
將前面步驟讀入的這些數字轉換為整數(即,"123" -> 123, "0032" -> 32)。如果沒有讀入數字,則整數為 0 。必要時更改符號(從步驟 2 開始)。
如果整數數超過 32 位有符號整數范圍 [?231,? 231?? 1] ,需要截斷這個整數,使其保持在這個范圍內。具體來說,小于 ?231 的整數應該被固定為 ?231 ,大于 231?? 1 的整數應該被固定為 231?? 1 。
返回整數作為最終結果。
注意:本題中的空白字符只包括空格字符 ' ' 。
除前導空格或數字后的其余字符串外,請勿忽略 任何其他字符。示例?1:輸入:s = "42"
輸出:42
解釋:加粗的字符串為已經讀入的字符,插入符號是當前讀取的字符。
第 1 步:"42"(當前沒有讀入字符,因為沒有前導空格)^
第 2 步:"42"(當前沒有讀入字符,因為這里不存在 '-' 或者 '+')^
第 3 步:"42"(讀入 "42")^
解析得到整數 42 。
由于 "42" 在范圍 [-231, 231 - 1] 內,最終結果為 42 。
示例?2:輸入:s = " -42"
輸出:-42
解釋:
第 1 步:" -42"(讀入前導空格,但忽視掉)^
第 2 步:" -42"(讀入 '-' 字符,所以結果應該是負數)^
第 3 步:" -42"(讀入 "42")^
解析得到整數 -42 。
由于 "-42" 在范圍 [-231, 231 - 1] 內,最終結果為 -42 。
示例?3:輸入:s = "4193 with words"
輸出:4193
解釋:
第 1 步:"4193 with words"(當前沒有讀入字符,因為沒有前導空格)^
第 2 步:"4193 with words"(當前沒有讀入字符,因為這里不存在 '-' 或者 '+')^
第 3 步:"4193 with words"(讀入 "4193";由于下一個字符不是一個數字,所以讀入停止)^
解析得到整數 4193 。
由于 "4193" 在范圍 [-231, 231 - 1] 內,最終結果為 4193 。
示例?4:輸入:s = "words and 987"
輸出:0
解釋:
第 1 步:"words and 987"(當前沒有讀入字符,因為沒有前導空格)^
第 2 步:"words and 987"(當前沒有讀入字符,因為這里不存在 '-' 或者 '+')^
第 3 步:"words and 987"(由于當前字符 'w' 不是一個數字,所以讀入停止)^
解析得到整數 0 ,因為沒有讀入任何數字。
由于 0 在范圍 [-231, 231 - 1] 內,最終結果為 0 。
示例?5:輸入:s = "-91283472332"
輸出:-2147483648
解釋:
第 1 步:"-91283472332"(當前沒有讀入字符,因為沒有前導空格)^
第 2 步:"-91283472332"(讀入 '-' 字符,所以結果應該是負數)^
第 3 步:"-91283472332"(讀入 "91283472332")^
解析得到整數 -91283472332 。
由于 -91283472332 小于范圍 [-231, 231 - 1] 的下界,最終結果被截斷為 -231 = -2147483648 。提示:0 <= s.length <= 200
s 由英文字母(大寫和小寫)、數字(0-9)、' '、'+'、'-' 和 '.' 組成鏈接:https://leetcode-cn.com/problems/string-to-integer-atoiclass Solution:def myAtoi(self, s: str) -> int:number = int(*re.findall('^[\+\-]?\d+',s.lstrip()))return max(min(number, 2 ** 31 - 1), -2 ** 31)
?
總結
以上是生活随笔為你收集整理的Leetcode 8. 字符串转换整数 (atoi) (每日一题 20210615)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Leetcode 剑指 Offer 03
- 下一篇: Leetcode 141.环形链表 (每