मान लीजिए हमारे पास कोष्ठकों (गोल, घुंघराले, और वर्गाकार) की एक स्ट्रिंग है, हमें जांचना है कि कोष्ठक संतुलित (सुव्यवस्थित) हैं या नहीं।
उदाहरण के लिए, यदि इनपुट s = "([()()]{[]})()" है, तो आउटपुट True होगा।
इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे:
- stack := एक नई सूची
- d := कुंजी-मान जोड़े ('}', '{'), (')', '('), (']', '[') के साथ एक हैश मैप
- s में प्रत्येक वर्ण c के लिए करें:
- यदि c '}])' में से कोई एक है, तो:
- यदि stack खाली है या stack का शीर्ष d[c] के बराबर नहीं है, तो असत्य वापस करें
- stack से पॉप करें
- अन्यथा, stack में c को पुश करें
- यदि c '}])' में से कोई एक है, तो:
- सत्य वापस करें यदि stack खाली है, अन्यथा असत्य
उदाहरण
class Solution:
def solve(self, s):
stack = []
d = {'}':'{', ')':'(', ']':'['}
for c in s:
if c in '}])':
if not stack or stack[-1] != d[c]:
return False
stack.pop()
else:
stack.append(c)
return not stack
ob = Solution()
print(ob.solve("([()()]{[]})()"))
इनपुट
"([()()]{[]})()"
आउटपुट
True