Bahasa Geobitsian adalah penyimpangan bahasa Inggris baru di mana sebuah kata dipecah menjadi segmen yang masing-masing harus dimulai dengan huruf yang berbeda. Kemudian setiap kali salah satu huruf awal muncul di string lain, itu diganti dengan seluruh segmen yang sesuai, mempertahankan kapitalisasi.
Proses ini disebut Geobitsizing .
Misalnya kata " Geobit " bisa dipecah menjadi geo bits
, dan puisi omong kosong
Algy met a Bear
A Bear met Algy
The Bear was bulgy
The bulge was Algy
akan menjadi Geobisit dengan itu sebagai
Algeoy met a Bitsear
A Bitsear met Algeoy
The Bitsear was bitsulgeoy
The bitsulgeoe was Algeoy
karena setiap g
menjadi geo
, setiap G
(meskipun tidak ada) menjadi Geo
, setiap b
menjadi bits
, dan setiap B
menjadi Bits
.
Perhatikan bahwa setiap penggantian dilakukan sehubungan dengan string asli, bukan langkah perantara. misalnya jika geo
telah gbo
sebaliknya, yang b
dibuat tidak akan diganti dengan bits
.
Tantangan
Tulis program atau fungsi yang dapat menghasilkan bahasa Geobitsian.
Ambil string satu baris yang terbuat dari huruf kecil (az) dan spasi. Ini akan menjadi kata yang digunakan sebagai argumen Geobitsizing, dengan spasi memisahkan segmen. Anda dapat mengasumsikan:
- Segmen tidak akan kosong. Jadi spasi tidak akan bertetangga satu sama lain atau berada di awal atau akhir string.
- Setiap segmen dimulai dengan huruf yang berbeda. Jadi tidak boleh lebih dari 26.
Sebagai contoh, beberapa string tersegmentasi valid Anda harus mendukung adalah geo bits
, butt ner
, alex
, dan do o r k nob
(segmen huruf tidak berpengaruh tetapi berlaku). Tapi geo
, butt ner
, Alex
, dan do o r k n ob
tidak valid.
Program atau fungsi Anda juga perlu menggunakan string arbitrer lain untuk menerapkan Geobitsizing, dan mencetak atau mengembalikan bahasa Geobitsian yang dihasilkan.
Anda dapat menganggap bahwa string ini hanya berisi baris baru dan ASCII yang dapat dicetak.
Ingat bahwa case huruf harus dipertahankan dari input ke output.
Berikut adalah beberapa contoh lain yang digunakan no pro gr am m ing
sebagai argumen Geobitsizing:
[empty string]
→ [empty string]
i
→ ing
I
→ Ing
Mmmm, mmm... MmmmMMM: m&m!
→ Mmmm, mmm... MmmmMMM: m&m!
(tidak ada perubahan)
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
Perhatikan bahwa hasilnya harus sama tidak peduli bagaimana argumen itu diatur, misalnya ing pro m no am gr
harus menghasilkan hasil yang sama seperti di atas.
Kode terpendek dalam byte menang.
\\b${l}(\\S+)
walaupun itu menghabiskan biaya 5 byte.
abra cadabra
, !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Itu harus mencakup semua kasus tepi, dan ada banyak dari mereka jika mencoba untuk menggunakan regexes ...
["no", "pro", "gr", "am", "m", "ing"]