Натолкните как написать рекурсивный метод который будет вставлять символ в строку после каждых 3 символов стринга (метод принимает только саму строку).
Michael
16 уровень
Как написать рекурсию
Обсуждается
Комментарии (1)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Павел Безумный учёный Expert
25 октября 2020, 19:37
Рекурсивный метод может выглядеть так:
Исходная строка string, передаваемая в метод, делится на две части: head (первые три символа исходной строки) и tail (остальные символы исходной строки). К подстроке head добавляется некоторый символ (в данном примере это @), а также результат вызова метода для подстроки tail. Это означает, что с "хвостом" исходной строки будет проделана та же операция: разделение на две части, добавление символа @ и соединение частей в одну строку. При каждом новом вызове метод "откусывает" по 3 символа от "хвоста", который становится вследствие этого всё короче, и когда длина "хвоста" станет меньше 3 символов, разделение его на две части станет невозможным; поэтому метод просто возвращает этот слишком короткий "хвост". В этой точке достигается базовое ограничение - выполняется код оператора if, после чего стек рекурсивных вызовов сворачивается. Завершаясь, каждый рекурсивный вызов метода возвращает свой "хвост", к которому добавляется "голова" с дополнительным символом. В конечном итоге получим строку с символами @, вставленными в необходимые позиции. 0