Удвоить согласные буквы - Lisp
Формулировка задачи:
Помогите пожалуйста!
Дана строка текста. Определить функцию, которая возвращает копию этой строки, в которой все согласные буквы удвоены.
Например: если дано "Привет, мир!", ответом будет "ППрривветт, ммирр!".
Решение задачи: «Удвоить согласные буквы»
textual
Листинг программы
- (defun task(text)
- (let ((v "аеёиоуыэюяАЕЁИОУЫЭЮЯ")
- (r ""))
- (iter (for s in-string text)
- (if (zerop (strInd v s)) (setq r (strCat r s s))
- (setq r (strCat r s)))) r))
Объяснение кода листинга программы
В данном коде реализована функция task
, которая принимает в качестве аргумента строку text
.
Внутри функции создаются две переменные: v
и r
.
Первая из них содержит строку аеёиоуыэюяАЕЁИОУЫЭЮЯ
, а вторая - пустую строку.
Затем происходит итерация по каждому символу входной строки.
Если символ является нулевым, то есть не является буквой, то к переменной r
добавляется этот символ и следующий за ним символ из строки v
.
Если символ является буквой, то к переменной r
добавляется этот символ и следующий за ним символ из строки v
.
В конце функция возвращает полученную строку r
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д