Github
文章目錄
- 思路
- 編寫
思路
- 首先去除空白字元 str.split()
- 在傳回的數組中,查找到第一個不為空的子串
- 設定flag,為整數字元串的正負号
- 依次存儲不是字元的整數字元
- 判斷存儲的整數字元串是否有效
- 是否越界
編寫
class Solution:
def myAtoi(self, str: str) -> int:
arrStr = str.split()
# 判讀是否字元串是否為空
if(len(arrStr) == 0):
return 0
# 隻判斷第一個字元串
numStr = ""
s = arrStr[0]
# 提取正負号
if(s[0] in "+-0123456789"):
numStr = numStr + s[0]
else:
return 0
# 提取數字
for j in range(1, len(s)):
tmp = s[j]
if(not tmp.isdigit()):
break
numStr = numStr + tmp
# 判斷是否提取到數字
if(not numStr or numStr=='+' or numStr=='-'):
return 0
num = int(numStr)
# 判斷是否越界
if(num >= 2**31):
return (2**31-1)
if(num < -2**31):
return -2**31
return num