Ngôn ngữ Geobitsian là một ngôn ngữ mới của tiếng Anh trong đó một từ được chia thành các phân đoạn mà mỗi từ phải bắt đầu bằng một chữ cái khác nhau. Sau đó, mỗi khi một trong những chữ cái bắt đầu xuất hiện trong một chuỗi khác, nó sẽ được thay thế bằng toàn bộ phân khúc tương ứng của nó, duy trì viết hoa.
Quá trình này được gọi là Geobitsizing .
Ví dụ: từ " Geobits " có thể được chia thành geo bits
và bài thơ vô nghĩa
Algy met a Bear
A Bear met Algy
The Bear was bulgy
The bulge was Algy
sẽ được Geobitsized với nó như là
Algeoy met a Bitsear
A Bitsear met Algeoy
The Bitsear was bitsulgeoy
The bitsulgeoe was Algeoy
bởi vì mọi g
trở thành geo
, mọi G
(dù không có) trở thành Geo
, mọi b
trở thành bits
và mọi B
trở thành Bits
.
Lưu ý rằng mỗi thay thế được thực hiện đối với chuỗi gốc, không phải bất kỳ bước trung gian nào. ví dụ, nếu geo
đã được gbo
thay thế, thì cái b
được tạo sẽ không được thay thế bằng bits
.
Thử thách
Viết chương trình hoặc chức năng có thể tạo ngôn ngữ Geobitsian.
Lấy một chuỗi một dòng được làm bằng chữ thường (az) và dấu cách. Đây sẽ là từ được sử dụng làm đối số Geobitsizing, với các khoảng trắng ngăn cách các phân đoạn. Bạn có thể giả sử:
- Phân khúc sẽ không trống. Vì vậy, các không gian sẽ không lân cận nhau cũng như ở đầu hoặc cuối chuỗi.
- Mỗi phân đoạn bắt đầu bằng một chữ cái khác nhau. Do đó, không thể có nhiều hơn 26.
Ví dụ, một số chuỗi phân đoạn hợp lệ bạn phải hỗ trợ là geo bits
, butt ner
, alex
, và do o r k nob
(phân đoạn chữ cái không có hiệu lực nhưng có giá trị). Nhưng geo
, butt ner
, Alex
, và do o r k n ob
không hợp lệ.
Chương trình hoặc chức năng của bạn cũng cần phải sử dụng một chuỗi tùy ý khác để áp dụng Geobitsizing cho và in hoặc trả về ngôn ngữ Geobitsian kết quả.
Bạn có thể giả sử chuỗi này chỉ chứa các dòng mới và ASCII có thể in được.
Hãy nhớ rằng các trường hợp chữ cái phải được bảo tồn từ đầu vào đến đầu ra.
Dưới đây là một số ví dụ khác sử dụng no pro gr am m ing
làm đối số Geobitsizing:
[empty string]
→ [empty string]
i
→ ing
I
→ Ing
Mmmm, mmm... MmmmMMM: m&m!
→ Mmmm, mmm... MmmmMMM: m&m!
(không thay đổi)
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
Lưu ý rằng các kết quả phải giống hệt nhau cho dù đối số được sắp xếp như thế nào, ví dụ như ing pro m no am gr
sẽ mang lại kết quả giống như trên.
Mã ngắn nhất tính bằng byte thắng.
\\b${l}(\\S+)
mặc dù điều đó làm bạn tốn 5 byte.
abra cadabra
, !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Điều đó sẽ bao gồm tất cả các trường hợp cạnh, và có rất nhiều trong số họ nếu một cố gắng để sử dụng regexes ...
["no", "pro", "gr", "am", "m", "ing"]