Đầu vào
Một chuỗi được mã hóa không trống bao gồm các ký tự ASCII có thể in được (trong phạm vi 32-126), trong đó một số chữ cái bị thiếu đã được thay thế bằng _
.
Đầu ra
Một chuỗi được giải mã có cùng độ dài với tất cả các chữ cái viết thường, bao gồm cả các chữ cái còn thiếu.
Làm sao?
Chỉnh sửa: Như được đề cập bởi @Deusovi trong các bình luận, đây là một biến thể của mật mã của Bacon .
- Tập hợp tất cả các chữ cái trong chuỗi gốc và nhóm chúng theo 5. Các chữ cái bổ sung không phù hợp trong một nhóm đầy đủ 5 được bỏ qua.
- Chuyển đổi từng nhóm thành nhị phân: chữ thường = 0 , chữ hoa = 1 . Điều này dẫn đến một danh sách các số nguyên.
- Sử dụng mỗi giá trị N trong danh sách này để thay thế từng giá trị trong
_
chuỗi gốc bằng chữ N -th của bảng chữ cái (được lập chỉ mục 0), theo thứ tự xuất hiện.
Thí dụ: prOGraMMIng PuZZleS & cOde ____
prOGr --> 00110 --> 6 --> 7th letter = 'g'
aMMIn --> 01110 --> 14 --> 15th letter = 'o'
gPuZZ --> 01011 --> 11 --> 12th letter = 'l'
leScO --> 00101 --> 5 --> 6th letter = 'f'
Bằng cách thay thế các chữ cái bị thiếu và chuyển đổi mọi thứ trở lại chữ thường, chuỗi gốc được tiết lộ:
programming puzzles & code golf
Đây là đầu ra dự kiến.
Làm rõ và quy tắc
- Các chữ cái bị thiếu được đảm bảo xuất hiện ở cuối chuỗi. Chính thức hơn: sẽ không bao giờ có bất kỳ chữ cái nào sau chữ cái đầu tiên
_
trong chuỗi đầu vào. Tuy nhiên, có thể có các ký tự ASCII có thể in khác như dấu cách và dấu chấm câu. - Đầu vào được đảm bảo không chứa bất kỳ chữ in hoa vô dụng nào : tất cả các chữ in hoa là các bit được đặt thành 1 được yêu cầu để giải mã các chữ cái bị thiếu. Mọi thứ khác đều viết thường.
- Chuỗi đầu vào được đảm bảo là hợp lệ. Đặc biệt:
- Nó sẽ luôn chứa đủ các nhóm 5 chữ cái đầy đủ để giải mã các dấu gạch dưới.
- Các số nguyên được mã hóa nhị phân được đảm bảo nằm trong phạm vi [0-25] .
- Có thể không có gì
_
trong chuỗi đầu vào, trong trường hợp đó bạn chỉ phải trả lại đầu vào. - Đây là môn đánh gôn , vì vậy câu trả lời ngắn nhất bằng byte sẽ thắng!
Các trường hợp thử nghiệm
Input : hello!
Output: hello!
Input : helLO, worl_!
Output: hello, world!
Input : i aM yoUr faTh__.
Output: i am your father.
Input : prOGraMMIng PuZZleS & cOde ____
Output: programming puzzles & code golf
Input : Can YOu gUesS tHE ENd oF This ____?
Output: can you guess the end of this text?
Input : THe qUICk brown FOx JUMps oVEr the la__ ___.
Output: the quick brown fox jumps over the lazy dog.
Input : RoadS? wHERe we're goinG WE doN't need _____.
Output: roads? where we're going we don't need roads.
Input : thE greatESt Trick thE DeVIl EVer PUllEd wAs CONvInciNg tHe WorLD h_ ____'_ _____.
Output: the greatest trick the devil ever pulled was convincing the world he didn't exist.
Một số trường hợp thử nghiệm thêm:
Input : BInar_
Output: binary
Input : 12 MonKey_
Output: 12 monkeys
Input : hyPerbolIZ__
Output: hyperbolized
Input : {[One Last Test ca__]}
Output: {[one last test case]}
_
trong chuỗi đầu vào là một trường hợp đặc biệt.
The input is guaranteed not to contain any useless capital letter
, trong trường hợp không có dấu gạch dưới, cũng sẽ không có chữ in hoa.
[32-126]
. Tôi đã thêm một trường hợp thử nghiệm.