เพื่อทำเครื่องหมายครบรอบของวัน IPv6 โลกสังคมอินเทอร์เน็ตมีการเผยแพร่แคมเปญไปปิด IPv4 วันที่ 6 มิถุนายน 2014 วันหนึ่ง
ที่อยู่ IPv6 อาจแสดงในรูปแบบที่ยาวของพวกเขาเป็นค่าเลขฐานสิบหก 16 บิตที่คั่นด้วยโคลอน ขึ้นอยู่กับที่อยู่พวกเขาอาจย่อให้สั้นตามที่อธิบายไว้ในรายการที่ 2 ของส่วนที่ 2.2 การแสดงข้อความของที่อยู่ RFC 3513 :
เพื่อให้การเขียนที่อยู่ที่มีศูนย์บิตง่ายขึ้นจะมีไวยากรณ์พิเศษให้บีบอัดศูนย์ การใช้ "::" บ่งชี้หนึ่งหรือมากกว่าหนึ่งกลุ่มของศูนย์ 16 บิต "::" สามารถปรากฏได้เพียงครั้งเดียวเท่านั้นในที่อยู่ "::" ยังสามารถใช้ในการบีบอัดนำหน้าหรือต่อท้ายศูนย์ในที่อยู่
รายการที่ท้าทายนี้จะเป็นโปรแกรมที่ยอมรับที่อยู่ IPv6 หนึ่งที่จัดรูปแบบทั้งในรูปแบบยาวหรือสั้นและจะแสดงที่อยู่เดียวกันทั้งในรูปแบบยาวและสั้นตามลำดับนั้น
อินพุตอาจมาจากอาร์กิวเมนต์บรรทัดคำสั่ง STDIN หรือแหล่งอินพุตอื่น ๆ ที่เหมาะสมกับภาษาที่คุณเลือก
ไลบรารี่หรือยูทิลิตี้เฉพาะสำหรับการแยกที่อยู่ IPv6 ถูกแบน (เช่นinet_ {ntop, pton} () )
หากที่อยู่อินพุตไม่ถูกต้องผลลัพธ์จะว่างเปล่า (หรือข้อความแสดงข้อผิดพลาดที่เหมาะสมที่ระบุว่าที่อยู่ไม่ถูกต้อง )
ในกรณีที่
::
เกิดการตัดทอนการตัดทอนอาจเกิดขึ้นเพียงครั้งเดียวสำหรับที่อยู่ที่ระบุ หากมีการดำเนินการ shortening ที่เป็นไปได้มากกว่าหนึ่งรายการสำหรับที่อยู่ที่ระบุจะต้องใช้การดำเนินการที่ให้ที่อยู่ที่สั้นที่สุดโดยรวม หากมีการเสมอกันในเรื่องนี้การดำเนินการครั้งแรกจะถูกใช้ นี่คือตัวอย่างในตัวอย่างด้านล่าง
ตัวอย่าง:
Input Output
1080:0:0:0:8:800:200C:417A 1080:0:0:0:8:800:200C:417A
1080::8:800:200C:417A
FF01::101 FF01:0:0:0:0:0:0:101
FF01::101
0:0:0:0:0:0:0:1 0:0:0:0:0:0:0:1
::1
:: 0:0:0:0:0:0:0:0
::
1:0:0:2:0:0:0:3 1:0:0:2:0:0:0:3
1:0:0:2::3
1:0:0:8:8:0:0:3 1:0:0:8:8:0:0:3
1::8:8:0:0:3
1:2:3:4:5:6:7:8 1:2:3:4:5:6:7:8
1:2:3:4:5:6:7:8
ABCD:1234 <Invalid address format - no output>
ABCDE::1234 <Invalid address format - no output>
1:2:3:4:5:6:7:8:9 <Invalid address format - no output>
:::1 <Invalid address format - no output>
codegolf puzzle <Invalid address format - no output>
นี่คือcodegolfดังนั้นคำตอบที่สั้นที่สุดเป็นไบต์ในวันที่ 6 มิถุนายน 2014 จะได้รับการยอมรับในฐานะผู้ชนะ
1::2:0:0:0:3
การป้อนข้อมูลไปได้หรือไม่
1:0:0:2:2::3
บอกว่าใส่เป็น ผลลัพธ์ที่สั้นลงจะเหมือนกันหรือ1::2:2:0:0:3
ไม่? เหมือนกันกับอินพุตที่สั้นลงที่ไม่เหมาะสม