用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]