假设我们有一个数字n,我们必须找到按词典顺序排序的前n个数字。
因此,如果输入像n = 15,那么输出将是[1、10、11、12、13、14、15、2、3、4、5、6、7、8、9]
为了解决这个问题,我们将按照以下步骤操作:
数:= 1
ans:=具有单个元素计数的列表
当ans <n时,
count:= count的商/ 10
数:=数+ 1
虽然count mod 10与0相同,但是
在ans结尾处插入计数
count:= count的商/ 10
数:=数* 10
当count> n时,执行
返回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]