leetcode 字串轉換整數 白痴講解

2021-09-10 09:25:41 字數 1533 閱讀 3719

我的首先想法是正規表示式,原因是這是乙個從字串中尋找符合某種要求的字串。

class solution(object):

def myatoi(self, s):

""":type str: str

:rtype: int

"""#引入正則化模組

import re

result = re.findall(r"^[-+]?\d+", str.strip())

#如果查詢的結果的列表是空的,直接返回0

if not result:

return 0

else:

#把result list轉化為字串,然後轉化為整數

integer =int(''.join(result))

#2147483647是2的31次方-1

if integer >2147483647:

return2147483647

elif integer < -2147483648:

return -2147483648

else:

return integer

answer = solution()

str = " -a123b"

s = answer.myatoi(str)

print(s)

這裡給出join()函式的用法,原來**裡的語句是

『』.join(result),就是用空字元為間隔把result這個list轉化成字串

然後int()函式把字串換成整數

這裡解釋一下**裡的pattern。

result = re.findall(r"^[-+]?\d+", str.strip())

^…是搜尋以…開頭的

[-+]是要麼是-號要麼是+號

[-+]?是要麼是-號要麼是+號要麼是』'空字元

\d是要求是數字

\d+是數字後面可以接任意個數字

這樣就是題目要求的了

再提一嘴

str.strip()是去掉字串中的空字元

其實做題過程中,我想到好像這種字串是不能解決的,就是數字在字串中有多部分

比如「 -a123b +c456d」就只能輸出-123不知道有沒有大佬能解決呢?

leetcode字串轉換整數

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

LeetCode 字串轉換整數

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

leetcode 字串轉換整數 atoi

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