ทุกคนรู้ว่าการเข้ารหัสความยาวรันคืออะไร มันเป็นเรื่องของการแข่งขันกอล์ฟโค๊ด เราจะดูรูปแบบที่แน่นอน
ตัวอย่าง
Normal: 11222222222222222222233333111111111112333322
Run-length: 112(19)3(5)1(11)2333322
จำนวนในวงเล็บระบุจำนวนครั้งที่สัญลักษณ์ก่อนหน้าเกิดขึ้น ในตัวอย่างมีการเข้ารหัสเฉพาะอักขระ 5 ตัวขึ้นไป นี่เป็นเพราะการเข้ารหัสการรัน 4 หรือน้อยกว่านั้นไม่ช่วยปรับปรุงการนับจำนวนตัวอักษร
ท้าทาย
เขียนฟังก์ชั่น / โปรแกรมที่ใช้รูปแบบของการเข้ารหัสแบบ run-length แต่ยังสามารถเข้ารหัสการทำงานของสองสัญลักษณ์ การวิ่งของสองสัญลักษณ์จะต้องอยู่ในวงเล็บด้วย กลุ่มจะถูกล้อมรอบด้วยวงเล็บ โปรแกรมของคุณต้องยอมรับสตริงเป็นอินพุตและเอาต์พุตสตริงที่ถูกแก้ไขด้วยการแก้ไขที่ทำให้สตริงสั้นลง
ตัวอย่าง
Normal: 111244411144411144411167676767222222277777222222277777123123123123
Double run-length: 1112((444111)(3))67676767((2(7)7(5))(2))123123123123
หมายเหตุ
111
ไม่ได้เข้ารหัสเพราะการเข้ารหัสมัน (1(3)
) ไม่สั้น- สตริง
444111
เกิดขึ้น 3 ครั้งดังนั้นจึงถูกเข้ารหัส 676767
ไม่ได้เข้ารหัสเพราะ((67)(4))
มีความยาวมากกว่าเดิม222222277777222222277777
((222222277777)(2))
ไม่ได้ถูกเข้ารหัสเป็น ทำไม? เพราะ222222277777
ตัวเองสามารถลด2(7)7(5)
ได้123123123123
ไม่ได้เข้ารหัสเพราะโปรแกรมของคุณควรจัดการกับการทำงานของสองสัญลักษณ์ไม่ใช่สามอย่าง
นี่คือ รหัสกอล์ฟรหัสที่สั้นที่สุดจึงชนะ Tie-breaker เป็นการส่งเร็ว
หากฉันพลาดอะไรหรือคุณไม่แน่ใจในสิ่งใดโปรดแจ้งให้ฉันทราบในความคิดเห็น
เราจะต้องจัดการ
—
รั่วแม่ชี
441444144414
-> ((4414)(3))
หรือไม่
ฉันได้แก้ไขแล้ว
—
ericw31415
@ KennyLau ไม่คุณจะไม่ทำ
—
ericw31415
4414
ในทางเทคนิคเป็นชุดของ 4 ถ้อยคำของฉันไม่ดี
สามารถ
—
CalculatorFeline
111111111
เข้ารหัสเป็น(1)(9)
?
67
วิ