Геобицианский язык - это новое извращение английского языка, где слово разбивается на сегменты, каждый из которых должен начинаться с другой буквы. Затем каждый раз, когда одна из этих начальных букв появляется в другой строке, она заменяется всем соответствующим сегментом, сохраняя заглавные буквы.
Этот процесс называется 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"]