作为一个新手程序员,在做递归练习时,下面的函数接受两个数字,并返回一个逗号分隔的字符串,其中所有数字都位于起始数字和结束数字之间,包括两个数字。我使用了一个列表,将其转换为set,最后再次转换为字符串。字符串但我相信有更好的方法来解决它。有什么建议吗?你知道吗
def numbersInbetween(a, b):
if a > b:
return "Invalid"
elif a == b:
return str(b)
else:
alist = range(a,b+1,1)
aset = set(alist)
aset2 = ','.join(str(s) for s in aset)
numbersInbetween(a+1, b)
return aset2
如果要使用
range
,则根本不需要执行递归:-)我们递归生成从下一个元素到这一行结束的字符串
我们保留当前的数字
a
,然后用a + 1
和b
再次调用相同的函数。因此,对于输入1和输入3,评估将这样进行然后呢
这将成为
这将成为
最后变成了
相关问题 更多 >
编程相关推荐