Рифмы гласных: яблоки и бананы
Существует традиционная детская песня, которая повторяет один и тот же текст снова и снова, только каждый раз, когда каждый гласный заменяется случайным гласным, но постоянным в текущей строфе.
Вызов
Цель состоит в том, чтобы предложить кратчайший код, который выполняет такое преобразование для входного текста.
правила
- Вы должны печатать рифму столько раз, сколько в ней четких гласных.
- Каждый оттиск должен быть отделен переводом строки (для каждой платформы выбран комбо
\n
и\r
принимается). - Для итерации
i
замените каждый гласныйi
гласным в исходном тексте. - Вводимый текст представляет собой последовательность печатных символов ASCII (диапазон
[32, 126]
. - На входе не будет вставленных разрывов строк.
- Должны быть затронуты только гласные символы, остальные должны выводиться точно как ввод.
- Учитываются только гласные символы: носовые гласные, звучащие как гласные (как в французском «Тинтин» ), не должны обрабатываться как один гласный.
- Регистр имеет значение для вывода, но является позиционным (замена гласной в верхнем регистре выполняется заменой гласной в верхнем регистре)
- Прописные гласные не отличаются от строчных букв (т.
a
Е. <=>A
) - Последовательные гласные всегда рассматриваются отдельно (т.
Boat
Е. Дает обаBoot
иBaat
) - Поскольку буква
y
представляет собой либо гласный, либо согласный звук (поскольку мы говорим по-английски), обработка его как гласного или согласного допускается, однако ответы должны явно указывать, обрабатывают ли ониy
как гласный или нет.
Примеры:
Привет, мир
Hello world!
дает:
Helle werld!
Hollo world!
Выдержка из оригинального французского текста (в переводе) с y
гласным:
An elephant that was rambling all gently in the woods...
дает:
An alaphant that was ramblang all gantla an tha waads...
En elephent thet wes rembleng ell gentle en the weeds...
In iliphint thit wis rimbling ill gintli in thi wiids...
Yn ylyphynt thyt wys rymblyng yll gyntly yn thy wyyds...
On olophont thot wos romblong oll gontlo on tho woods...
Обратите внимание на поведение в верхнем регистре гласных: регистр хранится в его индексе (правила 8 и 9).
Гласный пример
Ввод, который не содержит гласных, например:
lgn@hst:~$ rm -rf ./* ~ /
не должен выдавать вывод или разрыв строки.
Ввод гласного
Ввод, содержащий одну гласную, выводится как есть.
Dad sat at a car and saw a fat bat.
дает:
Dad sat at a car and saw a fat bat.
Это код-гольф , поэтому выигрывает меньше всего кода bytecount (ничего, кроме вечной славы PPCG)!
Рубин , 78 байт
Попробуйте онлайн!
Быстрый и наивный подход. Y не считается гласным.
источник
Баш, 96 байт
Два решения одинаковой длины:
Попробуйте онлайн!
Принимает ввод в качестве аргумента командной строки и выводит в STDOUT.
источник
05AB1E (legacy) , 19 байтов
(Косвенно) сохранил один байт благодаря Кевину (печать непосредственно внутри цикла, а не объединение, работает только в устаревшей версии).
Попробуйте онлайн!
Использование перезаписи Elixir, 20 байтов
Попробуйте онлайн! (без
y
) | Попробуйте онлайн! (сy
,žM
заменяетсяžO
-же самое относится к устаревшей версии)Как это устроено
источник
y
должен также использовать6
вместо5
, кстати.y
касается версии -vowel, я случайно скопировал неправильную ссылку TIO, когда ответил: | ...i
в коде был твой ответ. Твой ответ не подходит для ввода без гласных. Ожидается, что это пустой вывод, но на самом деле он печатает сам ввод .. :(Japt v2.0a0
-R
,2422 байтаСчитается
y
гласным. Изменение обоих вхождений\y
для\v
рассматривать его в качестве согласного.Попытайся
объяснение
источник
Желе ,
23 20 1817 байт-2 Спасибо Эрику Аутгольферу
Считать
y
гласным заменить обаc
s наy
s.Попробуйте онлайн!
Как?
источник
ż/
в пареZ
две диады подряд, где левая непарная в монаде имеет неявный аргумент между ними)Z
> _ <), не уверен, что происходило с моим сеансом TIO, но удаление избыточностиð
не работало; перезагрузка исправлена.x€
→x
но ты меня ниндзя. : Pкрасный , 229 байт
Принимая
y
за не гласныйПопробуйте онлайн!
Чуть более читабельно:
источник
R ,
138, 129 байтовПопробуйте онлайн!
y
не считается гласнымисточник
Питон,
129119112 байтовПопробуйте онлайн!
Не лечитY как к гласной.
-7 байт благодаря @ Mr.Xcoder
источник
JavaScript (Node.js) , 99 байт
Попробуйте онлайн!
комментарии
источник
Java 10,
196188 байт-8 байт благодаря @ joH1 .
Без
y
гласной, чтобы сохранить байты.Попробуйте онлайн.
Объяснение:
источник
v
в циклPython 2 , 112 байт
Попробуйте онлайн!
Относится
y
как согласная.источник
Perl 6 , 64 байта
Попробуйте онлайн!
источник
Java (OpenJDK 8) , 184 байта
у гласная
Попробуйте онлайн!
источник