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]
广告