Сообщение Re: Принудительный выход из рекурсии в случае, если ответ уж от 20.11.2020 17:36
Изменено 20.11.2020 17:37 Буравчик
Re: Принудительный выход из рекурсии в случае, если ответ уже найден
Здравствуйте, Lazytech, Вы писали:
L>Что скажете, имеет ли такой подход с превентивным выходом из рекурсии право на существование? Оговорюсь, что вышеприведенный лог относится к единственному подвернувшемуся мне тестовому случаю, в котором этот подход мог быть мало-мальски полезен. Вполне возможно, что я чего-то недопонимаю...
Если понадобится "резко" завершить рекурсивные вызовы — такой подход, норм.
Но, думаю, такая необходимость встречается редко. Если проблема появилась, скорее всего неверное спроектирована функция рекурсии.
Питон (без флагов остановки)
L>Что скажете, имеет ли такой подход с превентивным выходом из рекурсии право на существование? Оговорюсь, что вышеприведенный лог относится к единственному подвернувшемуся мне тестовому случаю, в котором этот подход мог быть мало-мальски полезен. Вполне возможно, что я чего-то недопонимаю...
Если понадобится "резко" завершить рекурсивные вызовы — такой подход, норм.
Но, думаю, такая необходимость встречается редко. Если проблема появилась, скорее всего неверное спроектирована функция рекурсии.
Питон (без флагов остановки)
def is_merge(s, part1, part2):
if part1 == '':
return s == part2
if part2 == '':
return s == part1
if s == '':
return False
return s[0] == part1[0] and is_merge(s[1:], part1[1:], part2) or s[0] == part2[0] and is_merge(s[1:], part1, part2[1:])
Re: Принудительный выход из рекурсии в случае, если ответ уж
Здравствуйте, Lazytech, Вы писали:
L>Что скажете, имеет ли такой подход с превентивным выходом из рекурсии право на существование? Оговорюсь, что вышеприведенный лог относится к единственному подвернувшемуся мне тестовому случаю, в котором этот подход мог быть мало-мальски полезен. Вполне возможно, что я чего-то недопонимаю...
Если понадобится "резко" завершить рекурсивные вызовы — такой подход норм.
Но, думаю, такая необходимость встречается редко. Если проблема появилась, скорее всего неверно спроектирована функция рекурсии.
Питон (без флагов остановки)
L>Что скажете, имеет ли такой подход с превентивным выходом из рекурсии право на существование? Оговорюсь, что вышеприведенный лог относится к единственному подвернувшемуся мне тестовому случаю, в котором этот подход мог быть мало-мальски полезен. Вполне возможно, что я чего-то недопонимаю...
Если понадобится "резко" завершить рекурсивные вызовы — такой подход норм.
Но, думаю, такая необходимость встречается редко. Если проблема появилась, скорее всего неверно спроектирована функция рекурсии.
Питон (без флагов остановки)
def is_merge(s, part1, part2):
if part1 == '':
return s == part2
if part2 == '':
return s == part1
if s == '':
return False
return s[0] == part1[0] and is_merge(s[1:], part1[1:], part2) \
or s[0] == part2[0] and is_merge(s[1:], part1, part2[1:])