मान लीजिए कि हमारे पास कोष्ठक की एक स्ट्रिंग है; हमें स्ट्रिंग को सही बनाने के लिए हटाए जाने वाले कोष्ठकों की न्यूनतम संख्या की गणना करने के लिए एक फ़ंक्शन लिखना होगा (प्रत्येक खुले कोष्ठक अंततः बंद हो जाता है)।
इसलिए, यदि इनपुट "(()))(" जैसा है, तो आउटपुट 2 होगा, क्योंकि सही स्ट्रिंग "(())" है, ")(" को हटा दें।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- कुल:=0, अस्थायी:=0
- प्रत्येक पी इन एस के लिए, करें
- यदि p "(" के समान है, तो
- कुल :=कुल + 1
- अन्यथा जब p ")" के समान हो और योग 0 न हो, तो
- कुल :=कुल - 1
- अन्यथा,
- अस्थायी:=अस्थायी + 1
- यदि p "(" के समान है, तो
- वापसी कुल + तापमान
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
class Solution: def solve(self, s): total = 0 temp = 0 for p in s: if p == "(": total += 1 elif p == ")" and total: total -= 1 else: temp += 1 return total + temp ob1 = Solution() string = "(()))(" print(ob1.solve(string))
इनपुट
"(()))("
आउटपुट
2