इस साइट पर कुछ समय बिताने के बाद मैं चीजों का आनंद लेने के लिए आया हूं। यही कारण है कि मैं हाल ही में एक से अधिक बार एक ही वर्ण वाले तार से नाराज हूं। अपनी नौकरी एक समारोह या कार्यक्रम जो लिखना है संघनित निम्नलिखित नियमों के अनुसार एक दिया स्ट्रिंग:
0-संक्षेपण के साथ शुरू करें , जो कि उनके बीच 0 अन्य वर्णों के साथ समान वर्णों की पहली (सबसे बाईं ओर) जोड़ी है। यदि ऐसी जोड़ी पाई जाती है, तो दो पात्रों में से एक को हटा दें और एक और 0-संक्षेपण करके एल्गोरिथ्म को पुनरारंभ करें । यदि ऐसी कोई जोड़ी नहीं मिली है, तो अगले चरण पर आगे बढ़ें। उदाहरण:
programming
-C0->programing
aabbcc
-C0->abbcc
test
-C0->test
फिर 1-संघनन करें , जो कि उनके बीच 1 अन्य वर्ण के साथ समान वर्णों की पहली जोड़ी के लिए देखें। यदि ऐसी जोड़ी पाई जाती है, तो उनमें से एक और उनके बीच के सभी पात्रों को हटा दें और 0-संक्षेपण के साथ पुनः आरंभ करें । यदि ऐसी कोई जोड़ी नहीं मिली है, तो अगले चरण पर आगे बढ़ें। उदाहरण:
abacac
-C1->acac
java
-C1->ja
2-संक्षेपण के साथ जारी रखें और इसी तरह मूल संक्षेप की लंबाई n होने के साथ एक संक्षेपण तक, हर बार संक्षेपण के बाद कुछ अक्षरों को हटा दिया जाता है। उदाहरण:
programing
-C2->praming
abcdafg
-C3->afg
परिणामी स्ट्रिंग को संघनित कहा जाता है और प्रत्येक वर्ण में एक बार सबसे अधिक होता है।
इनपुट:
मुद्रण योग्य अस्की-पात्रों का एक निचला केस स्ट्रिंग।
आउटपुट:
सघन स्ट्रिंग उपरोक्त नियमों के अनुसार।
उदाहरण:
examples -> es
programming -> praming
puzzles -> puzles
codegolf -> colf
andromeda -> a
abcbaccbabcb -> acb
if(x==1):x++ -> if(x+
fnabnfun -> fun
abcdefae -> abcde
एल्गोरिथ्म कैसे काम करता है, यह स्पष्ट करने के लिए विस्तृत उदाहरण:
fnabnfun -C0-> fnabnfun -C1-> fnabnfun -C2-> fnfun -C0-> fnfun -C1-> fun -C0-> fun
-C1-> fun -C2-> ... -C8-> fun
abcbaccbabcb -C0-> abcbacbabcb -C0-> abcbacbabcb -C1-> abacbabcb -C0-> abacbabcb
-C1-> acbabcb -C0-> acbabcb -C1-> acbcb -C0-> acbcb -C1-> acb -C0-> acb
-C1-> ... -C12-> acb
आपके दृष्टिकोण को आपके समाधान के ऊपर से एल्गोरिथ्म को लागू करने की आवश्यकता नहीं है और एल्गोरिथ्म सभी अनुमत इनपुट के लिए समान आउटपुट लौटाता है। यह एक कोड-गोल्फ चुनौती है।
सहायक सैंडबॉक्स टिप्पणियों के लिए @ लिनुस को धन्यवाद !