Bu benim ppcg'deki ilk görevim!
Giriş
İki farklı ascii karakterinden oluşan bir dize. Örneğin
ABAABBAAAAAABBAAABAABBAABA
Meydan okuma
Görev bu kuralları aşağıdaki kurallara uyarak çözmek:
- İlk iki karakteri atla
- Dizenin geri kalanını 8 karakterden oluşan gruplara ayırın
- Her grupta, her karakteri,
0
bu karakter orijinal dizgenin ilk karakteriyle aynıysa,1
aksi takdirde - Şimdi her grup bir baytı temsil ediyor. Her grubu bayt char kodundan karaktere dönüştürün
- Tüm karakterleri birleştir
Örnek
Yukarıdaki dizginin kodunu çözelim.
AB AABBAAAA AABBAAAB AABBAABA
^^ ^ ^ ^
| | | |
| \---------|---------/
| |
Skip Convert to binary
Uyarı A
orijinal dizisindeki ilk karakter ve B
ikincisidir. Bu nedenle, her yerini A
ile 0
ve her B
ile 1
. Şimdi biz elde ediyoruz:
00110000 00110001 00110010
ki bu [0x30, 0x31, 0x32]
ikilidir. Bu değerler ["0", "1", "2"]
sırasıyla karakterleri temsil eder , bu nedenle son çıktı olması gerekir 012
.
puanlama
Bu, elbette, kod golfüdür , bu da kodunuzu mümkün olduğu kadar kısa yapmak anlamına gelir. Puan bayt cinsinden ölçülür.
Kısıtlamalar ve GÇ formatı
Standart kurallar geçerlidir. İşte bazı ek kurallar:
- Geçerli bir girdi kabul edebilirsiniz
- Giriş dizesi tam olarak iki farklı karakterden oluşur.
- İlk iki karakter farklı
- Giriş dizesinin minimum uzunluğu 2 karakterdir.
- Uzunluk her zaman 2 modulo 8 verecektir
- Dize her zaman yalnızca yazdırılabilir ASCII karakterlerinden oluşacağını varsayabilirsiniz.
- Hem girdi hem de kod çözülmüş dizede
- Lider ve takip eden boşluklara çıktıda izin verilir (eşleşen her şey
/\s*/
)