ส่วนที่เรียบง่าย:กำหนดสตริงอินพุตที่มีเฉพาะอักขระ ASCII ที่พิมพ์ได้ (ช่องว่าง - ตัวหนอน) นับจำนวนครั้งของอักขระแต่ละตัวและส่งคืนผลลัพธ์ในรูปแบบที่สะดวก ผลลัพธ์ของสตริงa%hda7a
ควรเป็นดังนี้: a:3, %:1, h:1, 7:1, d:1
. การเรียงลำดับไม่จำเป็นตัวคั่นและรูปแบบเป็นตัวเลือก แต่ต้องเข้าใจง่ายว่าหมายเลขใดสอดคล้องกับอักขระตัวใด คุณจะต้องไม่รวมตัวละครที่ไม่ได้อยู่ในสายป้อน ( a:3, b:0, c:0, d:1, ...
ไม่ตกลง)
ความท้าทายที่แท้จริง:
แปลงตัวละครทุกตัวในรหัสของคุณไปยังเลขฐานสอง 8 บิต (หรือ 16 บิตถ้าคุณกำลังใช้ UTF-16 หรือคล้ายกัน) 0
และระบุตัวละครทุกตัวเริ่มต้นที่
ทุกตัวอักษร ( i
เป็นแจงนับ) ที่i%7
บิต1 ต้อง1
เป็น บิตจะถูกกำหนดหมายเลขจากด้านขวา บิตอื่น ๆ ทั้งหมดสามารถเป็นอะไรก็ได้ที่คุณต้องการ
ลองใช้รหัสต่อไปนี้เป็นตัวอย่าง:
[f]-xif)#f
การแปลงเป็นไบนารี่เราจะได้อาร์เรย์ด้านล่าง ตัวเลขแรก (แสดงถึง[
มี1
ตำแหน่ง 0'th ดังนั้นจึงเป็น OK หมายเลขที่สอง (แทนf
ได้1
ในตำแหน่งที่ 1'st เพื่อให้เป็นที่ตกลงเช่นกันคุณจะเห็น รหัสด้านบนนั้นถูกต้อง
C 76543210 หมายเลข Bit - -------- ---------- [0101101 1 0 - ตกลง f 011001 1 0 1 - ตกลง ] 01011 1 01 2 - ตกลง - 0010 1 101 3 - ตกลง x 011 1 1,000 4 - ตกลง ฉัน 01 1 01001 5 - ตกลง f 0 1 100110 6 - ตกลง ) 0010100 1 0 - ตกลง # 001000 1 1 1 - ตกลง f 01100 1 10 2 - ตกลง
หากเราเปลี่ยนรหัสเป็น: ]f[-xif)#f
เราจะเริ่มต้นลำดับต่อไปนี้:
C 76543210 Bit number
- -------- ----------
] 01011101 0 <- OK
f 01100110 1 <- OK
[ 01011011 2 <- Not OK
- 00101101 3 <- OK
อย่างที่เราเห็นอักษรตัวที่สาม[
ไม่มี1
ตำแหน่งที่ 2 (ดัชนีเป็นศูนย์) ดังนั้นรหัสนี้จึงไม่ถูกต้อง
กรณีทดสอบ:
Input:
This is a string containing some symbols: ".#!".#&/#
Output:
! " # & / : T a b c e g h i l m n o r s t y .
7 1 2 3 1 1 1 1 2 1 1 1 2 1 5 1 2 4 3 1 6 2 1 2
รูปแบบผลลัพธ์ที่สมเหตุสมผลใด ๆ ก็โอเค (สิ่งใดก็ตามที่สะดวกที่สุดสำหรับคุณ) คุณสามารถเช่นมี: หรือ:7, !:1, ":2, #:3, &:1, /:1, T:1, a:2 ...
[ ,7][!,1][",2][#,3][&,1]...
เอาต์พุตอยู่ในรูปแบบมาตรฐาน (กลับจากฟังก์ชันพิมพ์ไปยัง STDOUT และอื่น ๆ )
1โมดูลัสi
7
นี่คือรหัสกอล์ฟดังนั้นรหัสที่สั้นที่สุดในไบต์จะชนะโทษ
00001010
โปรดจำไว้ว่าการขึ้นบรรทัดใหม่ที่เป็น มันก็มีประโยชน์เช่นกัน! :)
n%7
จุดที่> pastie.org/pastes/10985263/text