Геобицианский язык - это новое извращение английского языка, где слово разбивается на сегменты, каждый из которых должен начинаться с другой буквы. Затем каждый раз, когда одна из этих начальных букв появляется в другой строке, она заменяется всем соответствующим сегментом, сохраняя заглавные буквы.
Этот процесс называется Geobitsizing .
Например, слово « Geobits » может быть взломаноgeo bits
, и бессмысленное стихотворение
Algy met a Bear
A Bear met Algy
The Bear was bulgy
The bulge was Algy
будет Geobitsized с ним как
Algeoy met a Bitsear
A Bitsear met Algeoy
The Bitsear was bitsulgeoy
The bitsulgeoe was Algeoy
потому что каждый g
становится geo
, каждый G
(хотя их нет) становится Geo
, каждый b
становится bits
, и каждый B
становится Bits
.
Обратите внимание, что каждая замена выполняется относительно исходной строки, а не какого-либо промежуточного шага. например, если geo
бы gbo
вместо этого b
созданный объект не был бы заменен на bits
.
Вызов
Напишите программу или функцию, которая может генерировать геобитский язык.
Возьмите одну строку из строчных букв (az) и пробелов. Это будет слово, используемое в качестве аргумента Geobitsizing, с пробелами, разделяющими сегменты. Вы можете предположить:
- Сегменты не будут пустыми. Таким образом, пробелы не будут соседствовать друг с другом и не будут находиться в начале или конце строки.
- Каждый сегмент начинается с другой буквы. Таким образом, не может быть больше 26.
Например, некоторые действительные сегментированные строки , которые вы должны поддерживать это geo bits
, butt ner
, alex
, и do o r k nob
(отдельные сегменты письма не имеют никакого эффекта , но действуют). Но geo
, butt ner
, Alex
и do o r k n ob
являются недействительными.
Ваша программа или функция также должна принять другую произвольную строку, чтобы применить геобитизирование к, и напечатать или вернуть полученный геобитский язык.
Вы можете предположить, что эта строка содержит только переводы строки и печатный ASCII.
Помните, что буквенные регистры должны быть сохранены от входа до выхода.
Вот еще несколько примеров использования no pro gr am m ing
в качестве аргумента Geobitsizing:
[empty string]
→ [empty string]
i
→ ing
I
→ Ing
Mmmm, mmm... MmmmMMM: m&m!
→ Mmmm, mmm... MmmmMMM: m&m!
(без изменений)
People think bananas are great, don't you?
→ Proeoprole thingnok bamnoamnoams amre grreamt, dono't you?
Pet a Puppy
Google Wikipedia
↓
Proet am Prouproproy
Groogrle Wingkingproedingam
Обратите внимание, что результаты должны быть идентичны независимо от того, как устроен аргумент, например, ing pro m no am gr
должны давать те же результаты, что и выше.
Самый короткий код в байтах побеждает.
\\b${l}(\\S+)
хотя это стоит 5 байт.
abra cadabra
, !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Это должно охватывать все крайние случаи, и есть много из них , если кто -то пытается использовать регулярные выражения ...
["no", "pro", "gr", "am", "m", "ing"]