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 中
- 對於 j 從 i + 1 到 9 的範圍:
- 對列表 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]
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP