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

জাভাস্ক্রিপ্টে গাণিতিক এক্সপ্রেশন থেকে প্যারেনথেসিস সরানো


সমস্যা

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি গাণিতিক এক্সপ্রেশনের স্ট্রিং str প্রথম ও একমাত্র আর্গুমেন্ট হিসেবে নেবে।

ফাংশনটির কাজ হল এক্সপ্রেশন থেকে প্যারেনথেসিস সরিয়ে অপারেশন ও অপারেন্ডকে যেন থাকে।

উদাহরণস্বরূপ, যদি ইনপুট হয় –

ইনপুট

const str = 'u-(v-w-(x+y))-z';

আউটপুট

const output = 'u-v+w+x+y-z';

উদাহরণ

নিচে কোডটি দেওয়া হল –

const str = 'u-(v-w-(x+y))-z'; 
const removeParentheses = (str = '') => { 
  let stack = []; 
  let lastSign = '+'; 
  for (let char of str) { 
    if (char === '(' || char === ')') { 
      lastSign = stack[stack.length - 1] || '+'; 
    } else if (char === '+') { 
      if (stack[stack.length - 1] !== '-' && stack[stack.length - 1] !== '+') { 
        stack.push(lastSign); 
      } 
    } else if (char === '-') { 
      if (lastSign === '-') { 
        if (stack[stack.length - 1] === '-') stack.pop(); 
        stack.push('+'); 
      } else { 
        if (stack[stack.length - 1] === '+') stack.pop(); 
        stack.push('-'); 
      } 
    } else { 
      stack.push(char); 
    } 
  } 
  return stack.join('').replace(/^\+/, ''); 
}; 
console.log(removeParentheses(str));

আউটপুট

u-v+w+x+y-z

  1. JavaScript-এ অ্যারের শুরু থেকে এলিমেন্ট মুছে ফেলা: shift()

  2. JavaScript-এ অ্যারের শেষ থেকে এলিমেন্ট মুছে ফেলা: pop()

  3. জাভাস্ক্রিপ্ট ব্যবহার করে ডাবল লিংকড লিস্ট থেকে এলিমেন্ট সরানো

  4. জাভাস্ক্রিপ্টে আউটার ফাংশন থেকে ইভেন্ট লিসেনার সরানো