केवल '(' और ')' वर्णों वाली एक स्ट्रिंग को देखते हुए, हम सबसे लंबे मान्य (अच्छी तरह से गठित) कोष्ठक सबस्ट्रिंग की लंबाई पाते हैं।
कोष्ठक का एक सेट एक अच्छी तरह से गठित कोष्ठक होने के योग्य होता है, अगर और केवल तभी, प्रत्येक उद्घाटन कोष्ठक के लिए, इसमें एक समापन कोष्ठक होता है।
उदाहरण के लिए -
'(())()' is a well-formed parentheses '())' is not a well-formed parentheses '()()()' is a well-formed parentheses
उदाहरण
const str = '(())()((('; const longestValidParentheses = (str = '') => { var ts = str.split(''); var stack = [], max = 0; ts.forEach((el, ind) => { if (el == '(') { stack.push(ind); } else { if (stack.length === 0 || ts[stack[stack.length - 1]] == ')'){ stack.push(ind); } else { stack.pop(); }; } }); stack.push(ts.length); stack.splice(0, 0, -1); for (let ind = 0; ind< stack.length - 1; ind++) { let v = stack[ind+1] - stack[ind] - 1; max = Math.max(max, v); }; return max; }; console.log(longestValidParentheses(str));
आउटपुट
और कंसोल में आउटपुट होगा -
6