用 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 的列表
- 当 ans 的大小 < n 时,执行
- count := count * 10
- 当 count > n 时,执行
- count := count 的商除以 10
- count := count + 1
- 当 count 模 10 等于 0 时,执行
- count := count 的商除以 10
- 在 ans 末尾插入 count
- 返回 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]
广告