इस चुनौती में आपको इनपुट के रूप में एक अक्षर स्ट्रिंग दी जाएगी। हम दिए गए इनपुट के "एंटी-स्ट्रिंग" को सभी अक्षरों के मामले के साथ स्ट्रिंग होने के लिए परिभाषित करेंगे। उदाहरण के लिए
AaBbbUy -> aAbBBuY
आपको एक प्रोग्राम लिखना चाहिए जो इनपुट के रूप में एक स्ट्रिंग लेता है और सबसे लंबे समय तक सन्निहित विकल्प की खोज करता है जिसका एंटी-स्ट्रिंग भी एक सन्निहित विकल्प है। दो पदार्थों को ओवरलैप नहीं करना चाहिए।
एक उदाहरण के रूप में यदि आपको स्ट्रिंग दिया गया था
fAbbAcGfaBBagF
बोल्ड किए गए भाग सबसे लंबे समय तक स्ट्रिंग विरोधी स्ट्रिंग जोड़ी होगी।
आपका कार्यक्रम, एक बार यह जोड़ी मिल जाने के बाद, उन्हें एक-एक पात्र में समेट दें। इसे सभी को हटाकर ऐसा करना चाहिए लेकिन प्रत्येक स्थानापन्न का पहला वर्ण। उदाहरण के लिए ऊपर स्ट्रिंग
fAbbAcGfaBBagF
बन जाएगा
fAcGfagF
आपके कार्यक्रम को तब तक इस प्रक्रिया को दोहराना चाहिए जब तक कि सबसे लंबी स्ट्रिंग एंटी-स्ट्रिंग जोड़ी एकल वर्ण या छोटी न हो।
उदाहरण के लिए एक ही तार के साथ काम करने के बाद पतन के बाद सबसे लंबी जोड़ी है
fAcGfagF
तो हम फिर से स्ट्रिंग को ध्वस्त करते हैं
fAcGag
अब स्ट्रिंग को और ढहाया नहीं जा सकता है इसलिए हमें इसका उत्पादन करना चाहिए।
उम्मीदवार जोड़े (उदाहरण AvaVA
) के बीच एक टाई के मामले में आप या तो कमी कर सकते हैं ( AaA
या AvV
, लेकिन नहीं Aa
)।
यह कोड-गोल्फ है इसलिए उत्तर बाइट्स में कम बाइट के साथ बेहतर स्कोर किए जाएंगे।
परीक्षण के मामलों
fAbbAcGfaBBagF -> fAcGag
AvaVA -> AaA / AvV
QQQQQQQ -> QQQQQQQ
fAbbAcQQQQaBBacqqqqA -> fAbcQBcq
gaq -> gaq
fAbbAcGfaBBagFaBBa -> fcGaBBag
मंशा
जबकि यह समस्या मनमाने ढंग से हो सकती है, यह वास्तव में एक समस्या है जिसे मैंने मौलिक बहुभुज को संसाधित करने के लिए कोड बनाते समय सामना किया था। इस प्रक्रिया का उपयोग एक मौलिक बहुभुज को छोटे n- भग को कम करने के लिए किया जा सकता है । मैंने कोशिश करने के बाद सोचा कि यह एक अच्छा सा गोल्फ बना देगा।
aaaAAAaaa -> aAaaa
?