leetcode 8 字串轉換整數

2021-09-11 03:53:38 字數 1505 閱讀 5230

思路: 1 首先去除空白符,然後判斷字元是否為空,為空(當原字串是空或者全空格符),返回0

2若第乙個非空字元為+-號:

if只有乙個字元 或者 第二個字元不是數字,返回0  (這裡邏輯要注意 :這裡面or的邏輯是 只有乙個字元 or 有2個字元且第二個字元不為數字)

else:遍歷字串,若當前字元是整數,加入res中

否則跳出迴圈

判斷res是否在有效數字範圍內

3若第乙個數字為數字:判斷過程與上面相似

4若第乙個數字既不是+-號也不是數字,返回0

class solution:

def myatoi(self, str):

""":type str: str

:rtype: int

"""j=0

for i in range(len(str)):

if str[i]==' ':

j=j+1

else:

break

str=str[j:]

if str=='':

return 0

elif (str[0]=='-') or (str[0]=='+'):

res=str[0]

if (len(str)<2 or (str[1] not in ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'])):

return 0

else:

for i in range(1,len(str)):

if str[i] not in ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']:

break

res=res+str[i]

if (int(res)>=-2147483648)& (int(res)<=2147483647):

return int(res)

else:

if int(res)>0:

return 2147483647

else:

return -2147483648

elif str[0] in ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']:

res=str[0]

for i in range(1,len(str)):

if str[i] not in ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']:

break

res=res+str[i]

if (int(res)>=-2147483648)& (int(res)<=2147483647):

return int(res)

else:

if int(res)>0:

return 2147483647

else:

return -2147483648

else:

return 0

LeetCode 8 字串轉換整數

題目描述 請你來實現乙個 atoi 函式,使其能將字串轉換成整數。首先,該函式會根據需要丟棄無用的開頭空格字元,直到尋找到第乙個非空格的字元為止。當我們尋找到的第乙個非空字元為正或者負號時,則將該符號與之後面盡可能多的連續數字組合起來,作為該整數的正負號 假如第乙個非空字元是數字,則直接將其與之後連...

leetcode 8 字串轉換整數

請你來實現乙個 atoi 函式,使其能將字串轉換成整數。首先,該函式會根據需要丟棄無用的開頭空格字元,直到尋找到第乙個非空格的字元為止。當我們尋找到的第乙個非空字元為正或者負號時,則將該符號與之後面盡可能多的連續數字組合起來,作為該整數的正負號 假如第乙個非空字元是數字,則直接將其與之後連續的數字字...

Leetcode 8 字串轉換整數

仔細點比啥都強。提交錯誤9次的我如是說到。步驟如下 1.清除空格 2.判斷正負號,以及是不是以字母開頭。3.讀取數字,判斷是否超過int的邊界。在判斷邊界時,可以先將數字存在long型別中來和int max int min比較,最後轉化為int型返回。但是題幹不允許。qaq class soluti...