У меня есть некоторая проблема для рекурсивного решения без использования какого-либо модуля, и мне нужно, чтобы вы помогли мне, пожалуйста.
Вы находитесь на сетке в начале координат (0, 0), и вы хотитечтобы добраться до пункта назначения n, k (то есть n движется вправо, а k движется вверх).Мы можем двигаться только на один шаг вправо или вверх за раз.Реализуйте функцию, которая получает два числа n, k и печатает все пути, чтобы добраться до места назначения n, k, только шагая вправо или вверх.Шаг вверх представлен как «u», а справа - как «r».Каждый путь должен быть последовательностью символов u, r, и каждый путь должен быть напечатан в одной строке.
Я пытался что-то сделать:
def paths_ur(n, k):
paths_ur_helper(n, k, 0, 0)
def paths_ur_helper(n, k, right_moves, up_moves):
if right_moves == n and up_moves == k: #If we reach the destination there is nothing to return
return []
if right_moves < n and up_moves < k: #Check that we are in range of the board
return 'r' + paths_ur_helper(n, k, right_moves + 1, up_moves) +
\ +'u' + paths_ur_helper(n, k, right_moves, up_moves + 1)
Ноэто идет не так, возможно, потому что я не представляю, как работает рекурсия ...
Спасибо.