ภาษาส่วนใหญ่จะมีบิวด์อินเพื่อค้นหาสตริงสำหรับการเกิดขึ้นทั้งหมดของซับสตริงที่กำหนดและแทนที่ด้วยสตริงอื่น ฉันไม่รู้ภาษาใด ๆ ที่ทำให้แนวคิดนี้เป็นจริง (ไม่จำเป็นต้องต่อเนื่องกัน) นั่นคือภารกิจของคุณในการท้าทายนี้
การป้อนข้อมูลจะประกอบด้วยสามสายA
, B
และC
ที่B
และC
มีการรับประกันที่มีความยาวเดียวกัน หากB
ปรากฏเป็น subsequence ในมันควรจะถูกแทนที่ด้วยA
C
นี่คือตัวอย่างง่ายๆ:
A: abcdefghijklmnopqrstuvwxyz
B: ghost
C: 12345
มันจะถูกประมวลผลเช่นนี้:
abcdefghijklmnopqrstuvwxyz
|| | ||
abcdef12ijklmn3pqr45uvwxyz
หากมีหลายวิธีในการค้นหาB
ให้เป็นลำดับคุณควรแทนที่ด้านซ้ายสุดอย่างโลภ:
A: abcdeedcba
B: ada
C: BOB
Result: BbcOeedcbB
and NOT: BbcdeeOcbB
เช่นเดียวกันหากB
พบได้ในหลาย ๆ ที่:
A: abcdeedcbaabcde
B: ed
C: 12
Result: abcd1e2cbaabcde
and NOT: abcd112cbaabc2e (or similar)
เมื่อB
ไม่ปรากฏขึ้นA
คุณควรเอาท์พุทA
ไม่เปลี่ยนแปลง
กฎระเบียบ
ตามที่ระบุไว้ข้างต้นใช้เวลาสามสายA
, B
และC
เป็น input และแทนที่เกิดขึ้นซ้ายส่วนใหญ่B
เป็น subsequence ในA
ด้วยC
หากมีการใด ๆ
คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่น, รับอินพุตผ่าน STDIN (หรือทางเลือกที่ใกล้เคียงที่สุด), อาร์กิวเมนต์บรรทัดคำสั่งหรืออาร์กิวเมนต์ของฟังก์ชันและส่งผลลัพธ์ผ่าน STDOUT (หรือทางเลือกที่ใกล้เคียงที่สุด), ค่าส่งคืนของฟังก์ชันหรือพารามิเตอร์
คุณอาจใช้สามสายในลำดับที่สอดคล้องกันซึ่งคุณควรระบุในคำตอบของคุณ คุณอาจจะคิดว่าB
และC
มีความยาวเดียวกัน สตริงทั้งหมดจะประกอบด้วยตัวอักษรและตัวเลขเท่านั้น
ใช้กฎมาตรฐานของกอล์ฟ
กรณีทดสอบ
กรณีทดสอบแต่ละสี่บรรทัด: A
, B
, C
ตามด้วยผล
abcdefghijklmnopqrstuvwxyz
ghost
12345
abcdef12ijklmn3pqr45uvwxyz
abcdeedcba
ada
BOB
BbcOeedcbB
abcdeedcbaabcde
ed
12
abcd1e2cbaabcde
121
121
aBc
aBc
abcde
acb
123
abcde
ABC
ABCD
1234
ABC
012345678901234567890123456789
42
TT
0123T5678901T34567890123456789
edcbaedcbaedcbaedcba
abcde
12345
edcbaedcbaedcbaedcba
edcbaedcbaedcbaedcbaedcba
abcde
12345
edcb1edc2aed3bae4cba5dcba
daccdedca
ace
cra
dcrcdadca
aacbcbabcccaabcbabcaabbbbca
abaaaccbac
1223334444
aacbcbabcccaabcbabcaabbbbca
aacbcbabcccaabcbabcaabbbbcac
abaaaccbac
1223334444
1ac2cb2bccc33b3bab4aa4bbbc44
ลีดเดอร์บอร์ด
สแต็คส่วนย่อยที่ด้านล่างของโพสต์นี้สร้างกระดานผู้นำจากคำตอบ a) เป็นรายการของวิธีแก้ปัญหาที่สั้นที่สุดต่อภาษาและ b) เป็นกระดานแต้มนำโดยรวม
เพื่อให้แน่ใจว่าคำตอบของคุณปรากฏขึ้นโปรดเริ่มคำตอบด้วยหัวข้อโดยใช้เทมเพลต Markdown ต่อไปนี้:
## Language Name, N bytes
ที่N
มีขนาดของส่งของคุณ หากคุณปรับปรุงคะแนนของคุณคุณสามารถเก็บคะแนนเก่าไว้ในพาดหัวโดยการตีพวกเขาผ่าน ตัวอย่างเช่น
## Ruby, <s>104</s> <s>101</s> 96 bytes
หากคุณต้องการรวมหลายตัวเลขไว้ในส่วนหัวของคุณ (เช่นเนื่องจากคะแนนของคุณคือผลรวมของสองไฟล์หรือคุณต้องการแสดงรายการการลงโทษการตั้งค่าสถานะของล่ามแยกต่างหาก) ตรวจสอบให้แน่ใจว่าคะแนนจริงเป็นตัวเลขสุดท้ายในส่วนหัว:
## Perl, 43 + 2 (-p flag) = 45 bytes
คุณยังสามารถตั้งชื่อภาษาให้เป็นลิงค์ซึ่งจะปรากฏในตัวอย่างข้อมูล:
## [><>](http://esolangs.org/wiki/Fish), 121 bytes
[[1], [2], [3]]
กัน