Đây là thử thách đầu tiên của tôi trên ppcg!
Đầu vào
Một chuỗi bao gồm hai ký tự ascii khác nhau. Ví dụ
ABAABBAAAAAABBAAABAABBAABA
Thử thách
Nhiệm vụ là giải mã chuỗi này theo các quy tắc sau:
- Bỏ qua hai ký tự đầu tiên
- Chia phần còn lại của chuỗi thành các nhóm 8 ký tự
- Trong mỗi nhóm, thay thế mỗi ký tự bằng
0
nếu ký tự đó giống với ký tự đầu tiên của chuỗi gốc và1
ngược lại - Bây giờ mỗi nhóm đại diện cho một byte. Chuyển đổi từng nhóm thành ký tự từ mã byte byte
- Nối tất cả các nhân vật
Thí dụ
Hãy giải mã chuỗi trên.
AB AABBAAAA AABBAAAB AABBAABA
^^ ^ ^ ^
| | | |
| \---------|---------/
| |
Skip Convert to binary
Lưu ý rằng đó A
là ký tự đầu tiên trong chuỗi gốc và B
là ký tự thứ hai. Do đó, thay thế từng A
với 0
và mỗi B
với 1
. Bây giờ chúng tôi có được:
00110000 00110001 00110010
đó là [0x30, 0x31, 0x32]
trong nhị phân. Các giá trị này đại diện cho các ký tự ["0", "1", "2"]
tương ứng, vì vậy đầu ra cuối cùng phải là 012
.
Chấm điểm
Tất nhiên, đây là mã golf , có nghĩa là làm cho mã của bạn càng ngắn càng tốt. Điểm được đo bằng byte.
Ràng buộc và định dạng IO
Quy tắc tiêu chuẩn áp dụng. Dưới đây là một số quy tắc bổ sung:
- Bạn có thể giả sử đầu vào hợp lệ
- Chuỗi đầu vào bao gồm chính xác hai ký tự khác nhau
- Hai nhân vật đầu tiên khác nhau.
- Độ dài tối thiểu của chuỗi đầu vào là 2 ký tự
- Độ dài sẽ luôn cho 2 modulo 8
- Bạn có thể giả sử chuỗi sẽ luôn chỉ bao gồm các ký tự ASCII có thể in
- Cả trong đầu vào và trong chuỗi giải mã
- Khoảng trắng hàng đầu và dấu được cho phép trong đầu ra (mọi thứ khớp
/\s*/
)