日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

[LeetCode]题解(python):008-String to Integer (atoi)

發布時間:2025/3/15 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [LeetCode]题解(python):008-String to Integer (atoi) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

題目來源:

https://leetcode.com/problems/string-to-integer-atoi/


題意分析:

????? 這道題也是簡單題,題目意思是要將字符串轉化成int。比如‘123’轉成123.


題目思路:

???? 由于有一些其他的輸入直接用int()函數肯定是不可以的。比如說‘123b’用int()函數肯定是報錯的。那么我們可以用一個ans = 0來初始化得到的int,從第一個字符s開始判斷,得到新的ans是ans = ans*10 + int(s)。題目要注意的是一些特殊情況:

1.剛開始的空格,字符開始的空格字符忽略不算;

2.‘-’和‘+’字符,第一次出現的這兩個字符可以代表得到的int的正負;

3.上述情況以外的所有非‘0’-‘9’的字符,出現這些字符的時候等于出現結束符;

4.得到的ans超過32位int最大長度。

只要在代碼中加上幾個bool判斷符,字符的一些比較和ans的大小比較一下,答案就出來了。


代碼(python):

1 class Solution(object): 2 def myAtoi(self, str): 3 """ 4 :type str: str 5 :rtype: int 6 """ 7 size = len(str) 8 if size == 0: 9 return 0 10 ans = 0 11 b = True 12 b1 = True 13 positive = True 14 i = 0 15 while i < size: 16 if str[i] != ' ': 17 b1 = False 18 if str[i] == ' ' and b1: 19 i += 1 20 continue 21 if b: 22 if str[i] =='-': 23 positive = False 24 i += 1 25 b = False 26 continue 27 if str[i] == '+': 28 i += 1 29 b = False 30 continue 31 if str[i]>= '0' and str[i] <= '9': 32 ans = ans*10 + int(str[i]) 33 if ans > 2147483647 and positive: 34 return 2147483647 35 if ans > 2147483648 and not positive: 36 return - 2147483648 37 else: 38 break 39 i += 1 40 if positive: 41 return ans 42 return -1 * ans View Code

?


轉載請注明出處:http://www.cnblogs.com/chruny/p/4801655.html

轉載于:https://www.cnblogs.com/chruny/p/4801655.html

總結

以上是生活随笔為你收集整理的[LeetCode]题解(python):008-String to Integer (atoi)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。