Прелюдия:
Эта задача отличается от «другой программы для кошек».
Там буквально тонны разных поворотов, почему у меня не может быть своих, людей?
Уникальные вещи:
- Это не чтение прямого ввода для вывода.
- Он манипулирует строкой таким образом, что наверняка не прямой кот.
Вызов:
Учитывая 3 входа (или один вход, разделенный, как вам нравится), получите три объекта (слова), которые мы собираемся заменить ручками, ананасами и яблоками в тексте и выходе.
Выходной формат (в соответствии с текстами песен, найденными на AZLyrics ):
Предполагая (замените значения в скобках этими):
- A, B, C с входными словами (напр.
apple
) - UA, UB, UC с входными словами с заглавными буквами (если уже не заглавными) (напр.
Apple
) - FUA, FUB, FUC с соответственно первыми заглавными буквами: (напр.
A
) - a / an со статьей, соответствующей первой букве гласного / согласного (напр.
an
)
[FUA] - [FUB] - [ОФП] - [FUA] У меня есть [a / an] [A], у меня есть [a / an] [C]. Э-э! [UC] - [UA]! У меня есть [a / an] [A], у меня есть [a / an] [B]. Э-э! [UB] - [UA]! [UC] - [UA], [UB] - [UA]. Э-э! [UA] - [UB] - [UC] - [UA]. [UA] - [UB] - [UC] - [UA]!
Прецедент:
Тест с pen
, pineapple
и apple
:
P-P-A-P
I have a pen, I have an apple.
Uh! Apple-Pen!
I have a pen, I have a pineapple.
Uh! Pineapple-Pen!
Apple-Pen, Pineapple-Pen.
Uh! Pen-Pineapple-Apple-Pen.
Pen-Pineapple-Apple-Pen!
Правила:
- Если ввод не начинается с буквы, предположите, что consonant (
a
) и первая заглавная буква первого символа (например,123 -> 1
). - Код-гольф , выигрывает наименьшее количество персонажей!
Ответы:
JavaScript (ES6),
217...187183 байтаПринимает ввод в виде массива из 3 строк, таких как
['pen', 'pineapple', 'apple']
.Примеры
Показать фрагмент кода
источник
'golf', 'puzzle', 'code'
ИМХОPerl 6 , 165 байт
Использует тот же подход, что и ответ Арно .
источник
Пакет,
494490 байтовОбъяснение:
:h
подпрограмма обрабатывает линиюI have a %, I have a %.
The%
s замещены из соответствующих аргументов командной строки, а затем строкиa a
,a e
,a i
,a o
иa u
являются заменить эквивалентнуюan
версию.:u
Подпрограмма обрабатывает другие строки; он принимает в качестве параметра слова и заглавные буквы все первые буквы. (Для префикса первого слова в верхнем регистре добавляется дополнительный пробел, но он выводится при выводе.) Для обработки слов после-
s передаются лишние пробелы, но они также удаляются при выводе.:u
Подпрограмма также используются для первой линии, хотя извлечение инициалов неудобно.источник
Python 3,6 -
351287286 байтЗдесь нет ничего необычного, кроме использования новой функции форматирования строковых литералов.
Примечание. В этой версии введено
3.6
форматирование строкового литерала . Следовательно, это не будет работать в более ранних версиях.источник
"
сэкономит только 2 байта, но\n
добавит 12 байтов.Луа,
615607 байтСохранено 8 байт благодаря [анонимному пользователю]
Уфф, длинный. Попробуй это здесь.
Я на 100% уверен, что это можно сократить. Я просто ленивый ..
В основном использует много манипуляций со строками. Есть 3 основных функции и одна переменная:
d(string)
: возвращает строку if vowel (AEIOUaeiou
), иначе возвращаетz(string)
: возвращает первую букву в верхнем регистреz(s) .. s:sub(2)
: возвращает целое слово, но первую букву в верхнем регистреf
: конечное слово (в переменной, чтобы сохранить несколько байтов). В вашем тестовом случае это было быPen-Pineapple-Apple-Pen
.Вход:
pen
,pineapple
,apple
Выход:
источник
Python 2 , 283 байта
Попробуйте онлайн!
источник