Удвоить согласные буквы - Lisp

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста! Дана строка текста. Определить функцию, которая возвращает копию этой строки, в которой все согласные буквы удвоены. Например: если дано "Привет, мир!", ответом будет "ППрривветт, ммирр!".

Решение задачи: «Удвоить согласные буквы»

textual
Листинг программы
  1. (defun task(text)
  2.    (let ((v "аеёиоуыэюяАЕЁИОУЫЭЮЯ")
  3.            (r ""))
  4.       (iter (for s in-string text)
  5.               (if (zerop (strInd v s)) (setq r (strCat r s s))
  6.                                                      (setq r (strCat r s)))) r))

Объяснение кода листинга программы

В данном коде реализована функция task, которая принимает в качестве аргумента строку text. Внутри функции создаются две переменные: v и r. Первая из них содержит строку аеёиоуыэюяАЕЁИОУЫЭЮЯ, а вторая - пустую строку. Затем происходит итерация по каждому символу входной строки. Если символ является нулевым, то есть не является буквой, то к переменной r добавляется этот символ и следующий за ним символ из строки v. Если символ является буквой, то к переменной r добавляется этот символ и следующий за ним символ из строки v. В конце функция возвращает полученную строку r.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.857 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы