ผู้คนจำนวนมากในไซต์นี้ใช้ภาษาที่ลึกลับและเนื่องจากภาษาเหล่านี้ผิดปกติและเข้าใจยากพวกเขามักจะเขียนคำอธิบายในรูปแบบที่แน่นอน ตัวอย่างเช่นถ้ารหัสคือ
abcdefghijklmnop
และภาษานี้ใช้#
สำหรับความคิดเห็นพวกเขาจะเขียนคำอธิบายเช่นนี้:
a #Explanation of what 'a' does
bc #Bc
d #d
e #Explanation of e
fgh #foobar
ij #hello world
k #etc.
l #so on
mn #and
op #so forth
ฉันทำสิ่งนี้บ่อยเช่นกัน แต่ทุกครั้งที่ทำสิ่งนี้ฉันรู้สึกว่าการสร้างเลย์เอาต์ของข้อความนั้นน่าสะพรึงกลัวและใช้เวลานาน ดังนั้นฉันต้องการให้คุณสร้าง "Esolang-Comment-Template-Generator" สำหรับฉัน ตัวอย่างเช่นหากเราไม่สนใจความคิดเห็นรหัสก่อนหน้ามีเทมเพลตนี้:
a #
bc #
d #
e #
fgh #
ij #
k #
l #
mn #
op #
ความท้าทาย:
คุณต้องเขียนโปรแกรมหรือฟังก์ชั่นที่รับสองสายเป็นอินพุตและเอาต์พุต "Esolang-Comment-Template" นี้ การป้อนข้อมูลครั้งแรกจะเป็นรหัส แต่มีการ|
แทรกแถบ ( ) ที่ขึ้นบรรทัดใหม่ อินพุตที่สองคือสิ่งที่เราจะใช้สำหรับความคิดเห็น ดังนั้นตัวอย่างสุดท้ายของเราจะมีสิ่งนี้สำหรับอินพุต:
"a|bc|d|e|fgh|ij|k|l|mn|op", "#"
น่าเสียดายที่นี่ไม่รวมแท่งจากการเป็นส่วนหนึ่งของการป้อนรหัส แต่ก็ไม่เป็นไร คุณสามารถสันนิษฐานได้ว่าอินพุตความคิดเห็นจะเป็นอักขระตัวเดียว เพื่อประโยชน์ของความเรียบง่ายถ่านความคิดเห็นจะไม่เป็นบาร์ การป้อนรหัสจะมีเฉพาะ ASCII ที่พิมพ์ได้และจะไม่มีการขึ้นบรรทัดใหม่
หวังว่าคุณสามารถสรุปสิ่งที่ต้องทำจาก testcase ได้ แต่ฉันจะพยายามอธิบายบางอย่าง
คุณต้องแบ่งการป้อนข้อมูลรหัสออกเป็น "ส่วนรหัส" ในทุกแถบ จากนั้นแต่ละส่วนของรหัสจะถูกส่งออกในบรรทัดของตัวเองและเบาะด้านซ้ายด้วยความยาวของรหัสก่อนหน้าทั้งหมด (ไม่รวมแถบ) จากนั้นแต่ละบรรทัดจะถูกเสริมด้วยพื้นที่ที่เพียงพอเพื่อให้อักขระสองตัวสุดท้ายในทุกบรรทัดเป็น "ช่องว่างเพิ่มเติมหนึ่งช่อง" + "อักขระข้อคิดเห็น"
อนุญาตให้ขึ้นบรรทัดใหม่ได้หนึ่งบรรทัด
นี่เป็นอีกตัวอย่างหนึ่ง สำหรับการป้อนข้อมูล
"Hello|World", "/"
ส่วนแรกของรหัสคือ "สวัสดี" และที่สองคือ "โลก" ดังนั้นควรให้ผลลัพธ์:
Hello /
World /
นี่คือตัวอย่างเพิ่มเติม:
Input:
"a|b|c|d|e|f|g", ","
Output:
a ,
b ,
c ,
d ,
e ,
f ,
g ,
Input:
"abcdefg", ":"
Output:
abcdefg :
Input:
"4|8|15|16|23|42", "%"
Output:
4 %
8 %
15 %
16 %
23 %
42 %
Input:
"E|ac|h s|ecti|on is| one c|haracte|r longer| than the| last!", "!"
Output:
E !
ac !
h s !
ecti !
on is !
one c !
haracte !
r longer !
than the !
last! !
Input:
"This|Code|has||empty||sections", "@"
Output:
This @
Code @
has @
@
empty @
@
sections @
กฎ:
คุณสามารถรับอินพุตและเอาต์พุตเหล่านี้ในรูปแบบที่สมเหตุสมผล ตัวอย่างเช่นการอ่าน / เขียนไฟล์ STDIN / STOUT ฟังก์ชันอาร์กิวเมนต์ / ค่าส่งคืนเป็นต้นตามปกตินี่คือcode-golfดังนั้นพยายามทำให้รหัสของคุณสั้นที่สุดเท่าที่จะเป็นไปได้และคุณจะชนะถ้าคุณได้วิธีแก้ปัญหาที่สั้นที่สุด ในภาษาของคุณ! ฉันจะเลือกทางออกที่สั้นที่สุดในฐานะผู้ชนะโดยรวม ช่องโหว่มาตรฐานถูกแบน
|
ตัวละครจะดีดังนั้นคุณสามารถอธิบายตัวเอง
|
) ได้ไหม?