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

开启你的职业生涯

完成课程获得认证

开始学习
广告