Мова геобіцянів - це нова перекрута англійської мови, де слово розбивається на відрізки, які кожен повинен починати з іншої літери. Потім кожного разу, коли одна з цих початкових літер з’являється в іншому рядку, вона замінюється на весь відповідний її відрізок, зберігаючи великі літери.
Цей процес називається Geobitsizing .
Наприклад, слово " Геобіц " може бути розбито 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є недійсними.
Вашій програмі чи функції також потрібно взяти інший довільний рядок, щоб застосувати Geobitsizing до та надрукувати або повернути отриману мову геобіцянки.
Ви можете припустити, що цей рядок містить лише нові рядки та 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"]