Python程式:查詢起始結束範圍內的所有連續遞增數字


假設我們有兩個數字start和end,我們需要找到一個排序後的整數列表,其中每個數字e都在[start, end](包含start和end)範圍內,並且e的數字是連續遞增的。例如,5678是連續遞增的數字,但169不是。

因此,如果輸入為start = 10,end = 150,則輸出將為[12, 23, 34, 45, 56, 67, 78, 89, 123]

為了解決這個問題,我們將遵循以下步驟:

  • s := 將所有9個數字作為字串 "123456789"
  • a := 一個新的列表
  • 對於 i 從 0 到 8 的範圍:
    • 對於 j 從 i + 1 到 9 的範圍:
      • x := 將s從索引i到j-1的子串轉換為數字
      • 如果 start <= x <= end:
        • 將 x 插入到 a 中
  • 對列表 a 進行排序並返回

示例

讓我們看下面的實現來更好地理解:

def solve(start, end):
   s = "123456789"
   a = []
   for i in range(9):
      for j in range(i + 1, 10):
         x = int(s[i:j])
         if start <= x <= end:
            a += (x,)
   return sorted(a)

start = 10
end = 150
print(solve(start, end))

輸入

10, 150

輸出

[12, 23, 34, 45, 56, 67, 78, 89, 123]

更新於:2021年10月18日

瀏覽量:364

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.