আমাদের RPN (রিভার্স পোলিশ নোটেশন) ইনপुट মেথড ব্যবহার করে স্ট্যাক দিয়ে একটি ক্যালকুলেটর তৈরি করতে হবে জাভাস্ক্রিপ্টে।
নিচের ইনপুট অ্যারেটি বিবেচনা করুন:
const arr = [1, 5, '+', 6, 3, '-', '/', 7, '*'];
প্রসেস:
- ১ অপারেন্ড, স্টকে পুশ করুন।
- ৫ অপারেন্ড, স্টকে পুশ করুন।
- '+' অপারেটর, ১ এবং ৫ পপ করে ক্যালকুলেট করে রেজাল্ট পুশ করুন।
- ৬ অপারেন্ড, স্টকে পুশ করুন।
- ৩ অপারেন্ড, স্টকে পুশ করুন।
- '-' অপারেটর, ৬ এবং ৩ পপ করে বিয়োগ করে রেজাল্ট পুশ করুন।
- '/' অপারেটর, ৬ এবং ৩ পপ করে ভাগ করে রেজাল্ট পুশ করুন।
- ৭ অপারেন্ড, স্টকে পুশ করুন।
- '*' অপারেটর, ২ এবং ৭ পপ করে গুণ করে রেজাল্ট পুশ করুন।
চূড়ান্ত আউটপুট হবে:
const output = 14;
উদাহরণ
এটির কোড হবে:
const arr = [1, 5, '+', 6, 3, '-', '/', 7, '*']; const stackCalculator = (arr = []) => { const options = { '+': (a, b) => a + b, '-': (a, b) => a - b, '*': (a, b) => a * b, '/': (a, b) => a / b }; const stack = []; arr.forEach(value => { stack.push(value in options ? options[value](...stack.splice(-2)) : value ); }); return stack; }; console.log(stackCalculator(arr));
আউটপুট
কনসোলে আউটপুট হবে:
[14]