สายอักขระที่มีบริบท
สำหรับวัตถุประสงค์ของการท้าทายนี้เป็นสตริงกับบริบทเป็นสามสายที่เรียกว่าบริบทซ้ายที่ส่วนข้อมูลและบริบทที่เหมาะสม เพราะมันหมายถึงซับสตริงของสตริงอีกต่อไป เราใช้ท่อแนวตั้ง|เป็นตัวคั่นดังนั้นตัวอย่างของสตริงกับบริบทถูกcod|e-go|lfที่บริบทด้านซ้ายเป็นcodข้อมูลที่เป็นและบริบทที่เหมาะสมคือe-go lfตัวอย่างนี้แสดงให้เห็นถึงอักขระย่อยของe-gocode-golf
ตอนนี้เพื่อเชื่อมโยงสองสตริงเข้ากับบริบทเราดำเนินการดังนี้ใช้aa|bcc|deeและcc|de|eeeเป็นตัวอย่าง เราจัดเรียงสตริงเช่นเดียวกับในแผนภาพ
a a|b c c|d e e
c c|d e|e e e
เพื่อให้ส่วนข้อมูลอยู่ติดกัน ส่วนข้อมูลของการต่อข้อมูลคือการต่อข้อมูลส่วนในกรณีbccdeนี้ บริบทด้านซ้ายเป็นส่วนที่ขยายไปทางด้านซ้ายของส่วนข้อมูลแรกในกรณีaaนี้ ในทำนองเดียวกันคือบริบทที่เหมาะสมเพื่อให้เรียงต่อกันเป็นสตริงกับบริบทeee aa|bccde|eeeสำหรับตัวอย่างที่สองให้พิจารณาa|bb|cdและaabb|cd|โดยที่คำที่สองมีบริบทด้านขวาที่ว่างเปล่า แผนภาพการจัดตำแหน่งคือ
a|b b|c d
a a b b|c d|
ที่บริบทด้านซ้ายของคำที่สองขยายออกไปไกลกว่าบริบทแรก aa|bbcd|เรียงต่อกันเป็น
แต่เดี๋ยวก่อนมี gotcha: ถ้าตัวอักษรของไดอะแกรมการจัดตำแหน่งไม่ตรงกันการเรียงต่อกันไม่มีอยู่! ตัวอย่างเช่นแผนภาพของaa|bb|ccและc|c|cเป็น
a a|b b|c c
c|c|c
โดยที่bและcในคอลัมน์ที่สี่ไม่เห็นด้วยดังนั้นจึงไม่สามารถต่อกันได้
งาน
งานของคุณคือการเขียนโปรแกรมที่มีสองสายโดยมีบริบทที่ส่วนต่าง ๆ ถูกแยกออกไปตาม|ด้านบนและส่งผลการต่อข้อมูลที่มีอยู่ถ้ามันมีอยู่และอย่างอื่นถ้าไม่ใช่ "อย่างอื่น" สามารถเป็นค่าใด ๆ รวมถึงไม่มีเอาต์พุตตราบใดที่ไม่ใช่สตริงที่ถูกต้องพร้อมบริบทและมันก็เหมือนกันในทุกกรณี อย่างไรก็ตามการโยนข้อผิดพลาดไม่เป็นที่ยอมรับ คุณสามารถให้โปรแกรม STDIN-to-STDOUT หรือฟังก์ชั่นและยอมรับฟังก์ชั่นที่ไม่ระบุชื่อได้เช่นกัน จำนวนไบต์ที่น้อยที่สุดชนะและช่องโหว่มาตรฐานไม่ได้รับอนุญาต
กรณีทดสอบ
aa|bcc|dee cc|de|eee -> aa|bccde|eee
a|bb|cd aabb|cd| -> aa|bbcd|
a|b|cccd aab|cc|c -> aa|bcc|cd
a|b|c b||cd -> a|b|cd
aa|bb|cc c|c|c -> None
aaa|b|c abb|cd|d -> None
|bb|cd abb|c|ed -> None
a|b|c a||cd -> None
|1<2=""คำจำกัดความของ&ควรแก้ปัญหานั้น ฉันขอโทษฉันไม่ได้ระบุสิ่งนี้อย่างชัดเจนมากขึ้นในรายละเอียดฉันจะแก้ไขได้