मान लीजिए कि हमारे पास एक स्ट्रिंग s है जिसमें कोष्ठक कोष्ठक "(" और ")" है, हमें संतुलित कोष्ठकों के सबसे लंबे बाद के क्रम की लंबाई ज्ञात करनी है।
इसलिए, यदि इनपुट s ="())(()(" जैसा है, तो आउटपुट 4 होगा, क्योंकि हम बाद में "()()"
ले सकते हैं।इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
रेस :=0
-
n :=s का आकार
-
बंद करें:=0
-
n - 1 से 0 की श्रेणी में i के लिए, 1 से घटाएं, करें
-
अगर s[i] ")" के समान है, तो
-
बंद करें:=बंद करें + 1
-
-
अन्यथा,
-
अगर पास> 0, तो
-
बंद करें:=बंद करें - 1
-
रेस :=रेस + 2
-
-
-
-
रिटर्न रेस
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
क्लास सॉल्यूशन:डिफ सॉल्व (सेल्फ, एस):रेस =0 एन =लेन (एस) क्लोज =0 फॉर आई इन रेंज (एन -1, -1, -1):अगर एस [i] ==" )":बंद करें + =1 और:अगर बंद करें> 0:बंद करें - =1 रेस + =2 रिटर्न रिसोब =समाधान () एस ="()) (() ("प्रिंट (ओब.सॉल्व (एस))) पूर्व>इनपुट
"())(()("आउटपुट
4