溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

使用LeetCode怎么將字符串轉(zhuǎn)換成整數(shù)

發(fā)布時間:2021-08-02 16:29:55 來源:億速云 閱讀:123 作者:Leah 欄目:大數(shù)據(jù)

這篇文章將為大家詳細(xì)講解有關(guān)使用LeetCode怎么將字符串轉(zhuǎn)換成整數(shù),文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

使用LeetCode怎么將字符串轉(zhuǎn)換成整數(shù)

2

 題解

思路:自動機(jī)
上面的圖就是該題目可梳理出的自動機(jī),這個題目的難點也是如何梳理出這個自動機(jī)狀態(tài)轉(zhuǎn)移圖。梳理出后,按照狀態(tài)轉(zhuǎn)移把相關(guān)規(guī)則寫入代碼即可。下方代碼是在看官方解題前寫的,因此會跟上圖略微有差異,官方代碼可去LeetCode網(wǎng)站查看。
class Solution:    def myAtoi(self, str: str) -> int:        str = str.strip()        if len(str)==0:            return 0        y=''        if str[0].isdigit():            y=y+str[0]            for i in range(1,len(str)):                if str[i].isdigit():                    y=y+str[i]                else:                    break         elif (str[0]=='-' or str[0]=='+') and 1<len(str) and str[1].isdigit():            y=y+str[0]            for i in range(1,len(str)):                if str[i].isdigit():                    y=y+str[i]                else:                    break         if len(y)>0 :            if  2**31-1>=int(y)>= -2**31:                return int(y)            elif int(y)>2**31-1 :                return 2**31-1            else :                return -2**31        else :            return 0

本文參與“OSC源創(chuàng)計劃”,歡迎正在閱讀的你也加入,一起分享。

關(guān)于使用LeetCode怎么將字符串轉(zhuǎn)換成整數(shù)就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI