นี่เป็นความท้าทายครั้งแรกของฉันใน ppcg!
อินพุต
สตริงที่ประกอบด้วยอักขระ ASCII สองตัวที่แตกต่างกัน ตัวอย่างเช่น
ABAABBAAAAAABBAAABAABBAABA
ท้าทาย
ภารกิจคือถอดรหัสสตริงนี้ตามกฎเหล่านี้:
- ข้ามอักขระสองตัวแรก
- แยกส่วนที่เหลือของสตริงออกเป็นกลุ่มละ 8 ตัวอักษร
- ในแต่ละกลุ่มให้แทนที่อักขระแต่ละตัวด้วย
0
ถ้าอักขระนั้นเหมือนกันกับอักขระตัวแรกของสตริงเดิมและ1
อื่น ๆ - ตอนนี้แต่ละกลุ่มแสดงถึงไบต์ แปลงแต่ละกลุ่มให้เป็นอักขระจากรหัสอักขระไบต์
- เชื่อมอักขระทั้งหมดเข้าด้วยกัน
ตัวอย่าง
ลองถอดรหัสสตริงข้างต้น
AB AABBAAAA AABBAAAB AABBAABA
^^ ^ ^ ^
| | | |
| \---------|---------/
| |
Skip Convert to binary
ขอให้สังเกตว่าA
เป็นตัวอักษรตัวแรกในสตริงเดิมและB
ตัวที่สอง ดังนั้นแทนที่แต่ละA
ที่มี0
และแต่ละคนด้วยB
1
ตอนนี้เราได้รับ:
00110000 00110001 00110010
ซึ่งอยู่[0x30, 0x31, 0x32]
ในไบนารี ค่าเหล่านี้เป็นตัวแทนของตัวอักษรตามลำดับเพื่อผลลัพธ์สุดท้ายที่ควรจะเป็น["0", "1", "2"]
012
เกณฑ์การให้คะแนน
แน่นอนว่านี่คือcode-golfซึ่งหมายถึงทำให้รหัสของคุณสั้นที่สุด คะแนนวัดเป็นไบต์
ข้อ จำกัด และรูปแบบ IO
ใช้กฎมาตรฐาน นี่คือกฎเพิ่มเติมบางส่วน:
- คุณสามารถรับอินพุตที่ถูกต้องได้
- สตริงที่ป้อนประกอบด้วยอักขระที่แตกต่างกันสองตัว
- อักขระสองตัวแรกนั้นแตกต่างกัน
- ความยาวที่น้อยที่สุดของสตริงอินพุตคือ 2 ตัวอักษร
- ความยาวจะให้ 2 โมดูโล 8 เสมอ
- คุณสามารถสันนิษฐานได้ว่าสตริงจะประกอบด้วยอักขระ ASCII ที่พิมพ์ได้เท่านั้น
- ทั้งในอินพุตและในสตริงที่ถอดรหัส
- ช่องว่างนำหน้าและต่อท้ายได้รับอนุญาตในผลลัพธ์ (ทุกอย่างที่ตรงกัน
/\s*/
)