यहाँ यूनिकोड में कुछ सामान्य संयुक्ताक्षरों की सूची दी गई है (जिन्हें मैं डेबियन पर अपनी रचना कुंजी के साथ बना सकता हूं):
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
)।
- लालच से मेल खाता है:
सभी "विस्तारित" अक्षर अनुक्रमों के साथ ligatures द्वारा प्रतिस्थापित किया गया है।
- उदाहरण के लिए,
æOEfoo
([ae]OEfoo
) बन जाता हैaeŒfoo
(ae[OE]foo
)।
- उदाहरण के लिए,
इसे पूरी तरह से स्वतंत्र रूप से करें: ffi
( [ff]i
) बन जाता है ffi
( ffi
), नहीं ffi
( [ffi]
)।
बहुत आसान लग रहा है? वहाँ एक पकड़ है: हर बार दो गैर- ligatures बिल्कुल एक चरित्र द्वारा ओवरलैप करते हैं , दोनों ligatures को स्ट्रिंग में डाला जाना चाहिए। यहाँ कुछ परीक्षण मामलों को प्रदर्शित करना है:
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
सावधान रहें: समान लालची मिलान लागू होता है (विशेषकर पिछले कुछ परीक्षण मामलों पर ध्यान दें)।
कोड-गोल्फ , बाइट्स में सबसे छोटा कोड जीतता है।