Расшифровать невротических лягушек
Теперь, когда Puzzling.SE наконец-то взломал мой одержимый амфибиями шифр , давайте напишем программу или функцию для его расшифровки!
(Если вы хотите посмотреть на головоломку, прежде чем ее испортить, нажмите на ссылку выше).
Как работает шифр
В Neurotic Лягушках О ught К Rel х В М уд ванны ( «Невротические Лягушки» для краткости), каждая буква шифруется в виде одного или двух слов:
- Длина не выделенного курсивом слова представляет букву.
neurotic
=> 8 букв =>H
frogs
=> 5 букв =>E
perpendicular
=> 13 букв =M
- Слово, содержащее курсив, изменяет следующее слово, добавляя 10, если выделенное курсивом слово было нечетным по длине, или 20, если выделенное курсивом слово было четным по длине. Любое или все слово может быть выделено курсивом. Слово, выделенное курсивом, всегда сопровождается словом, не выделенным курсивом.
*o*ught to
=> нечетно, 2 => 12 =>L
lo*u*nging calms
=> четный, 5 => 25 =>Y
Каждое слово открытого текста соответствует предложению зашифрованного текста, а каждое предложение открытого текста соответствует абзацу зашифрованного текста.
Формат ввода
Ваша программа или функция должна ввести сообщение в Neurotic Frogs, отформатированное в Markdown. Ввод будет состоять только из печатных ASCII и новых строк.
- Слова - это наборы символов, которые соответствуют регулярному выражению
[A-Za-z0-9']
.- Числа и буквы оба учитывают длину слова.
QB64
представляетD
. - ПРИМЕЧАНИЕ. Апострофы не учитываются при расчете длины слова.
Isn't
представляетD
, а неE
.
- Числа и буквы оба учитывают длину слова.
- Выделенные курсивом буквы заключены в пару звездочек (
*letters*
).- Одна или несколько последовательных букв могут быть выделены курсивом, вплоть до целого слова (
masseus*es*
,*all*
); несколько непоследовательных букв в слове также могут быть выделены курсивом (g*e*n*e*rates
). - Курсив никогда не охватывает несколько слов, никогда не включает пунктуацию и никогда не включает апострофы.
- Непарные звездочки и несколько соседних звездочек никогда не появятся.
- Одна или несколько последовательных букв могут быть выделены курсивом, вплоть до целого слова (
- Пунктуация является любой из следующих символов:
.,?!:;-()"
.- Слова в предложении разделены одним или несколькими знаками препинания и / или одним пробелом. Примеры:
*all* welcomed
,toad*s*, newts
,Ever*y*one--frogs
,cap... bliss
,they're (I
- Предложения заканчиваются одним или несколькими знаками препинания и разделяются двойным пробелом:
Th*e* Montgomery A*m*phibian Salon! Come luxuriate today!
- Абзацы разделены одной новой строкой. (Последнее предложение абзаца по-прежнему имеет один или несколько знаков препинания в конце.)
- Слова в предложении разделены одним или несколькими знаками препинания и / или одним пробелом. Примеры:
Другие символы не будут отображаться при вводе и не должны обрабатываться.
Ваш код может, по вашему усмотрению, ожидать, что ввод будет иметь один завершающий перевод строки.
Выходной формат
Результатом расшифровки ввода будет одно или несколько предложений. Буквы открытого текста могут быть любой комбинацией прописных и строчных букв. Слова в предложении должны быть разделены пробелами. Предложения должны заканчиваться точкой ( .
) и разделяться одним пробелом. Вы можете вывести завершающий пробел после последнего предложения. Все ваши выходные данные будут в одной строке, но вы можете вывести завершающий символ новой строки.
Разные детали
Ваш код может использовать любой из стандартных методов ввода и вывода. Он должен получать входные данные в виде многострочной строки, а не списка или другой структуры данных, и он должен выводить строку.
Самый короткий код в байтах побеждает!
Контрольные примеры
-->
Neurotic Frogs *O*ught To Rel*a*x In *M*ud Baths!
<--
HELLO.
-->
Business standards all*o*w only *adult* amphibians.
<--
HINT.
-->
Rejoice, *a*ll frogs an*d* toads also! Montgomery Sal*o*n opens up! Ha*pp*y throng fill*s* street ecstatically!
<--
GOOD JOB PPL.
-->
I like 3.1415926535897.
IM*O*, it's a *b*la*st*, yeah!
<--
ADAM. MAN.
-->
*I*, happily, *th*anks 2 u *e*ditin*g* specific wor*ding*--clarifying a *bit*--betterment :D!
<--
QUARTATA.
-->
Perpendicular l*ou*nging calms. *A* frog, a m*u*d cap... bliss! Wallowing g*e*n*e*rates happiness. Amphibian sp*a* isn't expensive--seventy d*o*llars--cheap! That'*s* not *a* large e*x*pens*e* from an*y* discerning fr*o*g's money, unlik*e* Super 8.
Ever*y*one--frogs, toad*s*, newts, *a*nd salamanders! G*e*t a wonderful shiat*s*u, or recei*v*e an other kind. Masseus*es* are her*e* today! Invite a fianc*e*e, supervisor, roommate, niece: *all* welcomed!
Y*o*u simply ne*v*er believed these p*o*ssibilitie*s*; they're (I *swear*) absolute truth! Th*e* Montgomery A*m*phibian Salon! Come luxuriate today!
<--
MY NAME IS INIGO MONTOYA. YOU KILLED MY FATHER. PREPARE TO DIE.