শুধুমাত্র '(' এবং ')' অক্ষর সম্বলিত একটি স্ট্রিং দেওয়া হলে, আমরা দীর্ঘতম বৈধ (সুগঠিত) বন্ধনী সাবস্ট্রিংয়ের দৈর্ঘ্য খুঁজে পাই।
বন্ধনীর একটি সেট একটি সুগঠিত বন্ধনী হওয়ার যোগ্যতা রাখে, যদি এবং শুধুমাত্র যদি, প্রতিটি খোলার বন্ধনীর জন্য, এতে একটি বন্ধ বন্ধনী থাকে।
যেমন −
'(())()' 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