To jest moje pierwsze wyzwanie na ppcg!
Wejście
Ciąg składający się z dwóch różnych znaków ascii. Na przykład
ABAABBAAAAAABBAAABAABBAABA
Wyzwanie
Zadaniem jest odkodowanie tego ciągu zgodnie z następującymi regułami:
- Pomiń pierwsze dwa znaki
- Podziel resztę ciągu na grupy po 8 znaków
- W każdej grupie zamień każdy znak na,
0jeśli znak ten jest taki sam jak pierwszy znak oryginalnego łańcucha, i na1inny - Teraz każda grupa reprezentuje bajt. Konwertuj każdą grupę na znak z bajtowego kodu znaków
- Połącz wszystkie postacie
Przykład
Dekodujmy powyższy ciąg.
AB AABBAAAA AABBAAAB AABBAABA
^^ ^ ^ ^
| | | |
| \---------|---------/
| |
Skip Convert to binary
Zauważ, że Ajest to pierwszy znak w oryginalnym ciągu znaków i Bjest on drugim. W związku z tym, należy wymienić każdy Az 0a każdy Bz 1. Teraz otrzymujemy:
00110000 00110001 00110010
który jest [0x30, 0x31, 0x32]w formacie binarnym. Wartości te reprezentują ["0", "1", "2"]odpowiednio znaki , więc końcowy wynik powinien być 012.
Punktacja
Jest to oczywiście code-golf , co oznacza, że kod powinien być jak najkrótszy. Wynik mierzony jest w bajtach.
Ograniczenia i format IO
Obowiązują standardowe zasady. Oto kilka dodatkowych zasad:
- Możesz założyć prawidłowe dane wejściowe
- Łańcuch wejściowy składa się z dokładnie dwóch różnych znaków
- Pierwsze dwa znaki są różne
- Minimalna długość ciągu wejściowego wynosi 2 znaki
- Długość zawsze daje 2 modulo 8
- Możesz założyć, że ciąg będzie zawsze składał się tylko z drukowalnych znaków ASCII
- Zarówno na wejściu, jak i w dekodowanym ciągu
- Wiodące i końcowe białe znaki są dozwolone w danych wyjściowych (wszystko, co pasuje
/\s*/)
