在沒有列表的情況下在python中合併兩個數字

壁壘

我需要合併兩個數字並創建所有可能的結果。

假設我們有a = 45b = 766,我們正在尋找這樣的數字**45**766**4**7**5**66**4**76**5**6等等,以原始數字保持相同順序的方式(我們不能這樣做**54**766)。

我只能用數學來解決這個問題。你能說出實現這個目標的任何方法或思維路徑嗎?

黑燈

您可以編寫一個遞歸生成器函數來執行此操作。有兩種遞歸情況,一種是從 中取一位數a,另一種是從 中取一位數b

def merge(a, b):
    if a == 0:                 # base cases
        yield b
        return
    if b == 0:
        yield a
        return
    
    digit = a % 10             # recursive case where we take last digit from `a`
    for x in merge(a//10, b):  # the recursive call omits that last digit
        yield x*10 + digit     # put the digit to the right of the recursive results

    digit = b % 10             # do all the same things for a digit from `b`
    for x in merge(a, b//10):
        yield x*10 + digit

你可以這樣稱呼它:

>>> print(list(merge(45, 766)))
[76645, 76465, 74665, 47665, 76456, 74656, 47656, 74566, 47566, 45766]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在沒有 Panda 或 NumPy 的情況下在 Python 中反向索引(小)數據集

在不使用 Python 中的循環的情況下比較兩個數組時,有沒有辦法檢查第一個匹配元素?

AttributeError: 'NoneType' 對像在合併兩個函數時沒有屬性 'drop'

合併兩個沒有重複的鍊錶

將兩個列表相乘,但將第一個列表中的每個數字乘以 Python 中第二個列表中的所有數字

如何在第一個中為每個數字合併兩個 numpy 數組?

Python中沒有重複的兩個列表的排列

有沒有辦法按國家和性別合併兩個數據框?

如何在python中將兩個列表合併為一個列表

有沒有辦法在沒有參數的情況下在其函數中獲取數組結構的索引?

合併兩個帶有 id 的數據幀

如何將兩個字典列表與 python 中的列表列表合併?

合併數據框中的兩個同名列

在 JavaScript 中合併兩個具有相同鍵的對像數組

如何在沒有很多 -I 標誌的情況下在 g++ 中包含多個頭目錄?

合併兩個數據序列

合併兩個列表以製作具有相同鍵 Python 的字典

合併丟失行的兩個數據幀中的兩個鍵

基於Python中的索引合併兩個嵌套列表

Python在沒有內置函數的情況下反轉句子中的每個單詞python同時保留順序

交換兩個數字,但僅限於特殊情況

在沒有正確鏈接 ID 的情況下連接兩個表

處理 R 中的列表 - 組合兩個數據框併計算大小不匹配的值

如何在python中合併兩個具有相同鍵但不同值的字典

如何在沒有別名的情況下在一個命令中刪除除master和develop之外的所有本地分支?

合併兩個數據框並保留第一個 df 中的額外行

在 kotlin 中將兩個數據類合併為一個

在 python 3.8 中將 str 數字轉換為兩個不同列表中的複數列表

python - 如何在沒有“if”或列表或字典的情況下返回基於整數的字符串