एक प्रोग्राम लिखें जो पुनरावर्ती फॉर्म के साथ एक स्ट्रिंग (कमांड या लाइन के माध्यम से) लेता है
PREFIX[SUFFIXES]
कहाँ पे
PREFIX
रिक्त स्ट्रिंग सहित लोअरकेस अक्षर (az) की कोई भी स्ट्रिंग हो सकती है, औरSUFFIXES
PREFIX[SUFFIXES]
खाली क्रम सहित, पुनरावर्ती रूप में एक साथ संक्षिप्त रूप के साथ तार का कोई भी क्रम हो सकता है ।
प्रत्येक प्रत्यय में स्ट्रिंग की सूची का पुनर्मूल्यांकन करके और उन्हें उपसर्ग में जोड़कर इनपुट से निचले अक्षर वाले तारों की एक सूची बनाएं। किसी भी क्रम में इस सूची में तार को रोकने के लिए आउटपुट, प्रति पंक्ति (प्लस एक वैकल्पिक अनुगामी न्यूलाइन)।
उदाहरण
अगर इनपुट है
cat[s[up[][]][]ch[e[r[]s[]]]a[maran[]comb[]pult[[]ing[]]]]
तो उपसर्ग है
cat
और और प्रत्यय हैंs[up[][]]
,[]
,ch[e[r[]s[]]]
, औरa[maran[]comb[]pult[[]ing[]]]
। प्रत्येक प्रत्यय की अपनी उपसर्ग होती है और बदले में प्रत्यय होता है।आउटपुट किसी भी क्रम में ये 9 शब्द होंगे
catsup cats cat catcher catches catamaran catacomb catapult catapulting
क्योंकि इनपुट इस पेड़ को एनकोड करता है
और 9 आउटपुट शब्दों में से प्रत्येक पेड़ को जड़ से पत्ती तक ट्रेस करके बनाया जा सकता है।
टिप्पणियाँ
याद रखें कि उपसर्ग खाली स्ट्रिंग हो सकता है, इसलिए कुछ ऐसा
[donut[][]cruller[]]
वैध इनपुट है जिसका उत्पादन (किसी भी क्रम में) होगा
donut cruller
जहाँ खाली लाइन दूसरी स्ट्रिंग से मेल खाने वाली खाली स्ट्रिंग के लिए है।
प्रत्यय अनुक्रम भी खाली हो सकता है, इसलिए तुच्छ इनपुट मामला
[]
इसके आउटपुट के रूप में एक खाली लाइन है:
- आप मान सकते हैं कि इनपुट केवल अद्वितीय आउटपुट शब्द ही उत्पन्न करेगा।
- उदाहरण के
hat[s[]ter[]s[]]
लिए अमान्य इनपुट होगा क्योंकिhats
दो बार एन्कोड किया गया है। - इसी तरह,
[[][]]
अमान्य है क्योंकि खाली स्ट्रिंग दो बार एन्कोडेड है।
- उदाहरण के
- आप यह नहीं मान सकते हैं कि इनपुट जितना संभव हो उतना छोटा या संपीड़ित है।
- उदाहरण के
'e'
लिए, ऊपर के मुख्य उदाहरण में'ch'
नोड को नोड के साथ जोड़ा जा सकता है , लेकिन इसका मतलब यह नहीं है कि इनपुट अमान्य है। - इसी तरह,
[[[[[]]]]]
उप-इष्टतम तरीके से केवल खाली स्ट्रिंग को एन्कोडिंग करने के बावजूद, मान्य है।
- उदाहरण के
- एक कार्यक्रम के बजाय आप एक फ़ंक्शन लिख सकते हैं जो इनपुट स्ट्रिंग को एक तर्क के रूप में लेता है और आउटपुट को सामान्य रूप से प्रिंट करता है या इसे स्ट्रिंग या सूची के रूप में लौटाता है।
बाइट्स में सबसे छोटा कोड जीतता है।