आपका उद्देश्य: कोष्ठक की एक स्ट्रिंग को देखते हुए, इनपुट स्ट्रिंग को एक स्ट्रिंग में बदलने के लिए आवश्यक न्यूनतम डैमेरू-लेवेन्शिन दूरी की आवश्यकता होती है जहां कोष्ठक संतुलित होते हैं।
इनपुट
इनपुट स्ट्रिंग में केवल ब्रैकेट होंगे और कोई अन्य वर्ण नहीं होगा। अर्थात्, यह किसी भी वर्ण का संयोजन है (){}[]<>
। आप या तो एक स्ट्रिंग या वर्णों के एक सरणी के रूप में इनपुट ले सकते हैं। आप इनपुट स्ट्रिंग के बारे में कोई अन्य धारणा नहीं बना सकते हैं; यह मनमाने ढंग से लंबा हो सकता है (आपकी भाषा द्वारा समर्थित अधिकतम आकार तक), यह खाली हो सकता है, कोष्ठक पहले से ही संतुलित हो सकते हैं, आदि।
दमेराऊ-लेवेंसाइटिन दूरी
दो तार के बीच दमेरु-लेवेन्शिन दूरी दो आसन्न वर्णों के सम्मिलन, विलोपन, एकल-वर्ण प्रतिस्थापन और ट्रांसपोज़िशन (स्वैपिंग) की न्यूनतम संख्या है।
उत्पादन
आउटपुट इनपुट स्ट्रिंग और एक स्ट्रिंग के बीच न्यूनतम डैमेरू-लेवेन्शिन दूरी होनी चाहिए जिसमें ब्रैकेट्स का मिलान होता है। आउटपुट एक संख्या होना चाहिए , परिणामस्वरूप संतुलित स्ट्रिंग नहीं।
कोष्ठक की एक जोड़ी को "मिलान" माना जाता है यदि उद्घाटन और समापन कोष्ठक सही क्रम में हैं और उनके अंदर कोई वर्ण नहीं है, जैसे कि
()
[]{}
या अगर उसके अंदर का हर उप-तत्व भी मेल खाता हो।
[()()()()]
{<[]>}
(()())
उप-तत्वों को गहरी कई परतों में घोंसला भी बनाया जा सकता है।
[(){<><>[()]}<>()]
<[{((()))}]>
(परिभाषा के लिए @DJMcMayhem का धन्यवाद)
परीक्षण के मामलों
Input Possible Balanced Output
Empty Empty 0
[](){}<> [](){}<> 0
[(){}<> [(){}<>] 1
[(]) []() 1
[[[[[[[[ [][][][] 4
(](<>}[>(}>><(>(({}] ()(<>)[(<><>){}] 7
>]{])< []{()} 3
([)}}>[ (){}<> 4
{<((<<][{{}>[<) <>(<<[]>{}>[]) 5
{><({((})>}}}{(}} {<><({()})>}{}{()} 4
(](<)>}[>(}>>{]<<(]] (<()<><<>()>>[])<()> 9
}})( {}() 2
(परीक्षण मामलों के आधे हल करने के लिए @WheatWizard को धन्यवाद)
यह कोड-गोल्फ , सबसे कम बाइट्स जीतता है!
आपकी प्रस्तुतियाँ परीक्षण योग्य होनी चाहिए, जिसका अर्थ है कि यह प्रत्येक परीक्षण मामले के लिए एक घंटे से अधिक समय में परिणाम देना चाहिए।
[<>]
या []<>
या<>