Monday Mini-Golf:ชุดของความท้าทายรหัสสั้น ๆกอล์ฟโพสต์ (หวังว่า!) ทุกวันจันทร์
เรื่องจริง1 : เมื่อวันก่อนฉันเล่นบนแท็บเล็ตของฉันเมื่อฉันมีความคิดที่จะเยี่ยมชมหน้าที่ฉันใช้บนพีซีของฉันเพื่อทดสอบจาวา หลังจากโหลดหน้าฉันเข้าโปรแกรมง่าย ๆ นี้:
alert("Hello!")
จากนั้นฉันก็กดปุ่มดำเนินการและรู้สึกประหลาดใจเมื่อมันบอกฉันว่ารหัสที่ฉันป้อนนั้นไม่ถูกต้อง ฉันลองดูที่กล่องข้อความและดูสิ่งนี้:
alllelelerlerlertlert("Heeelelellellelloello!")
อะ ??? นั่นไม่ใช่สิ่งที่ฉันป้อน! แล้วเกิดอะไรขึ้นที่นี่? ในการคิดออกฉันป้อนสองบรรทัดง่าย ๆ :
abcdefg
0123456
สิ่งนี้กลายเป็น:
abbbcbcbcdbcdbcdebcdebcdefbcdefbcdefgbcdefg
0112123123412345123456
ถึงตอนนี้ฉันยังไม่มีเงื่อนงำเกี่ยวกับสิ่งที่เกิดขึ้นกับตัวอักษร แต่ตัวเลขดูเหมือนง่ายกว่า เมื่อมันปรากฏออกหน้าเว็บก็ป้อนตัวอักษรตัวแรกจากนั้นทำซ้ำส่วนที่เหลือทั้งหมดในสตริงทุกครั้งที่มีการกดใหม่:
0112123123412345123456
0
1
12
123
1234
12345
123456
แต่ส่วนของตัวอักษรล่ะ? หลังจากไตร่ตรองสักครู่ฉันก็รู้ว่ามันเหมือนเดิม แต่แทนที่จะทำซ้ำแต่ละส่วนย่อยหนึ่งครั้งมันซ้ำสองครั้ง :
abbbcbcbcdbcdbcdebcdebcdefbcdefbcdefgbcdefg
a
bb
bcbc
bcdbcd
bcdebcde
bcdefbcdef
bcdefgbcdefg
การรวมกันของทั้งสองทำงานร่วมกับการรวมกันของเทคนิคเหล่านี้:
abc123z
abbbcbcbc1bc12bc123bc123zbc123z
a
bb
bcbc
bc1
bc12
bc123
bc123zbc123z
สิ่งที่ผิดพลาดทำให้เกิดนี้ดูเหมือนว่าจะตั้งค่าที่เครื่องหมายวรรคตอนและช่องว่างเพื่อให้กลายเป็นabc def
abbbcbc deeefef
เมื่อมาถึงจุดนี้ฉันรู้สึกซึมซับในการหาและเปลี่ยนมันให้กลายเป็นความท้าทายที่น่าสนใจที่ฉันลืมไปว่าทำไมฉันถึงอยู่ที่นั่นตั้งแต่แรก (ฉันหาวิธีพิมพ์ตามปกติอย่างไร: กด space-backspace หลังจากตัวละครทุกตัวน่าเบื่อมาก แต่คุณต้องทำในสิ่งที่คุณต้องทำ)
ท้าทาย
เป้าหมายของการท้าทายคือการเขียนโปรแกรมหรือฟังก์ชั่นที่ใช้ในข้อความที่จะประมวลผลทำการเปลี่ยนแปลงตามรายการด้านบนและส่งออก / ส่งคืนผลลัพธ์
รายละเอียด
- อินพุตจะมีเฉพาะ ASCII ที่พิมพ์ได้และไม่มีแท็บหรือบรรทัดใหม่
การทดสอบกรณี
อินพุต: (หนึ่งรายการต่อบรรทัด)
Mess up text
This is some longer text.
CAPS LOCK && "Punc-tua"+'tion'
under_score_style
CaPs wItHIn loWERs
1337 numb3r5
abcdefghij 0123456789
Code-golf is the best!
ขาออก:
Meeesesessess upp teeexexextext
Thhhihihishis iss sooomomomeome looononongongongeongeongeronger teeexexextext.
CAAAPAPAPSAPS LOOOCOCOCKOCK && "Puuunununcunc-tuuuaua"+'tiiioioionion'
unnndndndendendernder_scccococorcorcorecore_stttytytyltyltyletyle
CaaaPaPaPsaPs wIIItItItHItHItHIItHIItHInItHIn loooWoWoWEoWEoWERoWERoWERsoWERs
1333337 nuuumumumbumbumb3umb3rumb3rumb3r5
abbbcbcbcdbcdbcdebcdebcdefbcdefbcdefgbcdefgbcdefghbcdefghbcdefghibcdefghibcdefghijbcdefghij 0112123123412345123456123456712345678123456789
Cooodododeode-gooolololfolf iss thhhehe beeesesestest!
เกณฑ์การให้คะแนน
นี่คือรหัส - กอล์ฟดังนั้นรหัสที่ถูกต้องสั้นที่สุดในหน่วยไบต์ชนะ Tiebreaker ไปที่การส่งที่ถึงจำนวนไบต์สุดท้ายก่อน ผู้ชนะจะได้รับการคัดเลือกในวันจันทร์ที่ 2 พ.ย. โชคดี!
แก้ไข:และผู้ชนะคือ ... @ MartinBüttnerใช้Retinaสำหรับโซลูชันขนาด 43 ไบต์ที่น่าทึ่ง!
1ใช่เรื่องนี้เป็นความจริงโดยสมบูรณ์และหากคุณต้องการคำชี้แจงเพิ่มเติมให้ดูเชิงอรรถ 1
' '.join(x[0]+''.join(2*x[1:i]for i in range(1,len(x)+1)) for x in raw_input().split())