কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে সর্বোচ্চ বৈধ প্যারেনথেসিস লেন্থ বের করা


শুধু '(' এবং ')' ক্যারেক্টার সম্বলিত একটি স্ট্রিং দেওয়া থাকলে, আমরা সর্বোচ্চ দৈর্ঘ্যের বৈধ (well-formed) প্যারেনথেসিস সাবস্ট্রিং-এর দৈর্ঘ্য বের করব।

একটি প্যারেনথেসিস সেট বৈধ হয় যদি এবং কেবল যদি, প্রতিটি ওপেনিং প্যারেনথেসিস-এর জন্য একটি ক্লোজিং প্যারেনথেসিস থাকে।

উদাহরণস্বরূপ −

'(())()' একটি বৈধ প্যারেনথেসিস
'())' একটি বৈধ প্যারেনথেসিস নয়
'()()()' একটি বৈধ প্যারেনথেসিস

উদাহরণ

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

  1. জাভাস্ক্রিপ্টে ম্যাট্রিক্সে ১-এর সবচেয়ে লম্বা লাইন খুঁজে বের করা

  2. জাভাস্ক্রিপ্টে অ্যারেতে সবচেয়ে লম্বা আনকমন সাবস্ট্রিং খুঁজে বের করা

  3. জাভাস্ক্রিপ্টে সবচেয়ে দীর্ঘ নন-নেগেটিভ যোগফল বালা সিকোয়েন্স বের করা

  4. জাভাস্ক্রিপ্টে স্ট্রিংয়ে সর্বোচ্চ দীর্ঘ স্বরবর্ণ (vowel) সাবস্ট্রিং দৈর্ঘ্য