সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা গাণিতিক এক্সপ্রেশনের একটি স্ট্রিং, 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