#python #python-3.x
#python #python-3.x
Вопрос:
Я просто пытаюсь задать простой вопрос hackerrrank. Код, который я придумал, выводит ответ, но не возвращает его. Я не уверен, почему.
def myjump(c,j):
if len(c) <= 1:
print("answer: ",j)
return j
elif len(c) > 2:
if c[2] == 0:
c = c[2:]
else:
c = c[1:]
else:
c = c[1:]
j = 1
myjump(c,j)
return "Test"
def jumpingOnClouds(c):
if len(c) <= 1:
return 0
res = myjump(c,0)
print("return: ",res)
return res
result = jumpingOnClouds([0,0,1,0,0,1,0])
Вывод:
('answer: ', 4)
('return: ', 'Test')
Я не понимаю, почему код, похоже, попадает в блок «if len (c) <= 1:» и печатает число, но не попадает в этот возврат?
Комментарии:
1. Вероятно, в вопросе должно быть объяснено, что должен делать код, и / или ссылка на назначение Hackerrank.
2. Мне, вероятно, не нужно было рекурсивное решение, но я понимаю, благодаря комментарию tripleee. Добавление
return myjump(c,j)
работает
Ответ №1:
У вас есть рекурсивная функция; рекурсивный вызов этого не return myjump(c, j)
делает, поэтому вы разрываете цепочку (если это вообще должно было быть рекурсивным — может быть, сам вызов функции является ошибкой?)