Ошибка в кодировании Манаса и проблема с камнями

#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) и посмотрите, работает ли это.