एक portmanteau शब्द दो शब्दों का एक संयोजन है जो प्रत्येक शब्द का हिस्सा होता है और उन्हें एक नए शब्द में बनाता है। उदाहरण के लिए, शेर + बाघ => लाइगर ।
चलो इनपुट शब्दों की एक जोड़ी से पोर्टमिंटियस उत्पन्न करने के लिए एक कार्यक्रम लिखते हैं। कंप्यूटर अंग्रेजी में सर्वश्रेष्ठ नहीं हैं, इसलिए हमें यह सुनिश्चित करने के लिए कुछ नियमों को स्थापित करने की आवश्यकता होगी कि आउटपुट पोर्टमंटियस आंख और कान के लिए सुखद हैं।
(यहाँ उदाहरण उपसर्ग और स्पष्टता के लिए प्रत्यय के बीच एक विभाजक के साथ दिखाया गया है: li|ger
। हालांकि, कार्यक्रम के वास्तविक आउटपुट एक विभाजक नहीं करना चाहिए था: liger
।)
- प्रत्येक पोर्टमंट्यू में पहले शब्द के एक गैर-रिक्त उपसर्ग शामिल होगा जो दूसरे शब्द के एक गैर-रिक्त प्रत्यय के लिए संक्षिप्त किया गया है: हाँ
li|ger
, को नहीं|iger
। - हाँ: एक स्वर के साथ उपसर्ग समाप्त हो जाती है, प्रत्यय एक व्यंजन, और इसके विपरीत के साथ शुरू करते हैं चाहिए
lio|ger
याl|er
नहीं करने के लिए,lio|iger
याl|ger
। आप यह तय कर सकते हैं किy
स्वर या व्यंजन के रूप में गिना जाए । आपका समाधान एक विकल्प चुनना होगा और इसके साथ रहना होगा। - परिणामी शब्द में या तो मूल शब्द नहीं होने चाहिए: हाँ
lio|ger
, नहींlion|iger
या नहींli|tiger
।- यह नियम तब भी रखता है जब प्रश्न का हिस्सा दोनों शब्दों के हिस्सों से बनता है:
two
+ के इनपुट के साथwords
, आउटपुटtw|ords
अभी भी अवैध है क्योंकि इसमें सबस्ट्रिंग शामिल हैwords
। (इस जोड़ी के लिए एकमात्र वैध आउटपुट होगाt|ords
।)
- यह नियम तब भी रखता है जब प्रश्न का हिस्सा दोनों शब्दों के हिस्सों से बनता है:
आपके प्रोग्राम या फ़ंक्शन को दो शब्द लेने चाहिए और आउटपुट / सभी सुखद पोर्टेमेंटस की एक सूची वापस करनी चाहिए जो उस क्रम में उन शब्दों से बन सकते हैं।
विवरण
- मानक इनपुट और आउटपुट तरीके लागू होते हैं। मानक खामियों को मना किया जाता है।
- शब्दों में केवल निचले अक्षर शामिल होंगे (या, यदि आप चाहें, तो केवल अपरकेस अक्षर)।
- आप एक सूची के रूप में दो इनपुट शब्दों को ले सकते हैं, ट्यूपल, दो अलग-अलग इनपुट, एक गैर-पत्र सीमांकक के साथ एक स्ट्रिंग आदि।
- आउटपुट स्वरूप समान रूप से लचीला है; यदि आप वापस लौटते हैं या एक स्ट्रिंग का उत्पादन करते हैं, तो इसे ऐसे सीमांकित किया जाना चाहिए कि यह स्पष्ट हो जहां एक पोर्ट्मेंटो शब्द समाप्त होता है और अगला शुरू होता है।
- किसी पोर्ट्मेंटो शब्द के अंदर कोई सीमांकक नहीं होना चाहिए।
- यदि आपकी आउटपुट सूची में डुप्लिकेट परिणाम शामिल हैं तो यह ठीक है; डुप्लिकेट निकालना भी ठीक है।
परीक्षण के मामलों
> lion, tiger
< liger, ler, liger, lir, lioger, lior
> tiger, lion
< tion, ton, tin, tigion, tigon, tigen
> spoon, fork
< sork, spork, spork, spok, spoork, spook
> smoke, fog
< sog, smog, smog, smokog
> gallop, triumph
< giumph, gumph, gariumph, gamph, gaph, gah, galiumph, galumph, galliumph, gallumph, galloriumph, gallomph, galloh
> breakfast, lunch
< bunch, brunch, brench, brech, breh, breanch, breach, breah, breakunch, breakfunch, breakfanch, breakfach, breakfah, breakfasunch
> two, words
< tords
> harry, ginny (if y is treated as a consonant)
< hinny, hanny, hany, hay, harinny, harrinny
> harry, ginny (if y is treated as a vowel)
> hinny, hy, hanny, hany, harinny, hary, harrinny
संदर्भ समाधान
पिप में एक संदर्भ समाधान है ( y
एक व्यंजन के रूप में व्यवहार करता है )।
यह कोड-गोल्फ है : प्रत्येक भाषा में सबसे कम उत्तर जीतता है!