剑指offer17:打印从1到最大的n位数 python
leetcode上的题目比较奇怪,参考原版剑指offer,其实应该是主要考大数溢出的问题,转化为字符串。
def dfs(x):
if x == n: #固定为所有位之后停止
res.append(''.join(nums)) #把固定得到的数加在result后面
return
for i in range(10):
if i == 0 and x == 0: #如果第一个数为0会出现奇怪的00,01,所以如果为0的时候第一位替换为‘’
nums[x] = str('')
dfs(x+1)
else:
nums[x] = str(i) #固定第x位
dfs(x+1) #固定第x+1位
nums = ['0']*n
res = []
dfs(0)
res.pop(0) #去掉第一个0
result = ','.join(res)
return result
继续加油