用Python生成前n个字典序数的程序

用Python生成前n个字典序数的程序

假设我们有一个数字n,我们必须找到按字典序排序的前n个数字。

因此,如果输入为n = 15,则输出将为[1, 10, 11, 12, 13, 14, 15, 2, 3, 4, 5, 6, 7, 8, 9]

要解决此问题,我们将遵循以下步骤:

  • count := 1
  • ans := 包含count的列表
  • while ans的大小小于n,执行以下操作
    • count := count * 10
    • while count > n,执行以下操作
      • count := count / 10的商
      • count := count + 1
      • while count模10与0相同,执行以下操作
      • count := count / 10的商
      • 将count插入到Ans的末尾
  • 返回ans

请看以下实现以获得更好的理解:

实例代码

class Solution:
   def solve(self, n):
      count = 1
      ans = [count]

      while len(ans) < n:
         count *= 10
         while count > n:
            count = count // 10
            count += 1
            while count % 10 == 0:
               count = count // 10
               ans.append(count)
            return ans

ob = Solution()
n = 15
print(ob.solve(n))

输入

15

输出

[1, 10, 11, 12, 13, 14, 15, 2, 3, 4, 5, 6, 7, 8, 9]

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程