นี่คือรายการของหนังสติ๊กทั่วไป ใน Unicode (อันที่ฉันสามารถสร้างได้ด้วยคีย์การเขียนบนเดเบียน):
Orig Ascii Lig
ae [ae] æ
AE [AE] Æ
oe [oe] œ
OE [OE] Œ
ij [ij] ij
IJ [IJ] IJ
ff [ff] ff
fi [fi] fi
fl [fl] fl
ffi [ffi] ffi
ffl [ffl] ffl
คุณมีสองตัวเลือกในการท้าทายนี้: ใช้ตัวยึด UTF-8 จริงหรือใช้ชุดตัวเลือก ASCII เท่านั้น หากคุณใช้ตัวแปรสายรัด UTF-8 จริงคุณจะได้รับโบนัส 20% หากคุณใช้ตัวแปร ASCII เท่านั้นคุณอาจสมมติว่าเครื่องหมายวงเล็บเหลี่ยมจะไม่เกี่ยวข้องยกเว้นว่ามีความหมายว่ามัด
ความท้าทาย: กำหนดสตริงเป็นอินพุตเอาต์พุตสตริงเดียวกัน
พร้อมกับมัดดั้งเดิมทั้งหมดแทนที่ด้วยคู่หูที่ขยายของพวกเขา
- จับคู่กันอย่างตะกละตะกลาม:
affib
กลายเป็นaffib
(a[ffi]b
) ไม่ใช่affib
(a[ff]ib
) หรือaffib
(af[fi]b
)
- จับคู่กันอย่างตะกละตะกลาม:
ด้วยลำดับตัวอักษร "ที่ขยาย" ทั้งหมดที่แทนที่ด้วยหนังสติ๊ก
- เช่น
æOEfoo
([ae]OEfoo
) กลายเป็นaeŒfoo
(ae[OE]foo
)
- เช่น
ทำสิ่งนี้อย่างอิสระโดยสมบูรณ์: ffi
( [ff]i
) กลายเป็นffi
( ffi
) ไม่ใช่ffi
( [ffi]
)
ฟังดูง่ายพอใช่ไหม มีการจับเป็น: ทุกครั้งที่สองไม่ใช่หนังสติ๊ก-ทับซ้อนกันโดย ตัวละครตัวหนึ่ง , ทั้งของหนังสติ๊กที่จะต้องใส่เข้าไปในสตริง นี่คือตัวอย่างทดสอบสองสามข้อที่แสดงให้เห็น:
Input Ascii-output Output
fij [fi][ij] fiij
fIJ f[IJ] fIJ * remember, capitalization matters!
fffi [ff][ffi] ffffi
fff [ff][ff] ffff
ffffi [ff][ff][ffi] ffffffi
ffffij [ff][ff][ffi][ij] ffffffiij
ระวัง: ใช้การจับคู่โลภเดียวกัน (หมายเหตุโดยเฉพาะกรณีทดสอบสองสามข้อ)
code-golfดังนั้นรหัสที่สั้นที่สุดในหน่วยไบต์ชนะ