#python #recursion
Вопрос:
Я закодировал частичную рекурсивную функцию для [проблемы Манасы и камней]. (https://www.hackerrank.com/challenges/manasa-and-stones/problem)
def stones(n, a, b,root=0):
values = []
if n == 0:
return root
else:
root1 = root a
root2 = root b
ans1 = stones(n-1,a,b,root1)
values.append(ans1)
ans2 = stones(n-1,a,b,root2)
values.append(ans2)
return values
print(stones(2,2,3))
Для приведенного выше тестового случая значения должны возвращаться [4,5,5,6]
. Однако он [[4,5],[5,6]]
возвращается .
как мне это решить?
Комментарии:
1. Это происходит потому, что для
n=0
вас возвращается одно целое число, т. е.root
в противном случае вы возвращаетеvalues
список. Изменитеreturn root
наreturn [root]
иvalues.append(ans2)
наvalues.extend(ans2)
и посмотрите, работает ли это.