第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

誰能幫我把這個函數(shù)轉(zhuǎn)換成遞歸函數(shù)?

誰能幫我把這個函數(shù)轉(zhuǎn)換成遞歸函數(shù)?

BIG陽 2021-12-26 14:42:49
這段代碼接受一串字母、數(shù)字、符號,(幾乎任何東西)將數(shù)字拉出并將它們連接到一個字符串上并輸出數(shù)字列表。我正在尋找一種方法來使其成為遞歸函數(shù)。試圖在當前位置之后調(diào)用字符串位置以使其遞歸,但無法告訴何時停止(終止條件)使其處于無限循環(huán)中。def getdigits(entered):    print(entered, "maps to")    nums = ""    for x in range (0, len(entered)):        for i in range (0,9):            if entered[x] == str(i):                nums += entered[x]    print(nums)entered = ("1.234.123[123]")getdigits(entered)entered = ("**1.23a-42")getdigits(entered)上述示例的預期輸出是:123412312312342分別
查看完整描述

2 回答

?
開心每一天1111

TA貢獻1836條經(jīng)驗 獲得超13個贊

雖然可以使任何事物遞歸,但請始終牢記遞歸是有代價的。這通常是維護成本,因為該算法使必須使其工作的人感到困惑。

在您的情況下,一個好的停止條件是“空字符串”。切斷您處理過的字符并遞歸調(diào)用自己getdigits(entered[1:])

不要忘記刪除您想用遞歸替換的循環(huán)。

作為一種心理模型,將此視為處理項目的一種方式。您可以通過將項目排成一行并走過它們(循環(huán)/迭代)或?qū)⑺鼈兎旁诙褩I喜捻敳窟x擇第一個直到堆棧為空(遞歸)來處理項目。


查看完整回答
反對 回復 2021-12-26
?
婷婷同學_

TA貢獻1844條經(jīng)驗 獲得超8個贊

解決這個問題的簡單方法是初始化一個變量空字符串(nums = ""):


def getdigits(entered, nums = ""):

    if entered:

        if entered[0] in "0123456789":

            nums += entered[0]

        entered = entered[1:]

        # recursive  

        getdigits(entered, nums)

    else:

        # entered is empty string

        print(nums)


entered = ("1.234.123[123]")

getdigits(entered)

entered = ("**1.23a-42")

getdigits(entered)


查看完整回答
反對 回復 2021-12-26
  • 2 回答
  • 0 關注
  • 130 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號