বেসিক ক্যালকুলেটর সমস্যা
একটি স্ট্রিং এক্সপ্রেশন দেওয়া আছে যেটিতে পূর্ণসংখ্যা, +, -,괄호 (), এবং স্পেস থাকতে পারে। এক্সপ্রেশনটি ইভ্যালুয়েট করে ফলাফল বের করতে হবে।
উদাহরণ: "5 + 2 - 3" → ৪
সমাধানের পদ্ধতি (স্ট্যাক ব্যবহার)
ret= বর্তমান এক্সপ্রেশনের মান,sign= বর্তমান সাইন (+1/-1),num= বর্তমান সংখ্যা- স্ট্যাক
stব্যবহার করুন পরένথেসিস হ্যান্ডল করার জন্য - স্ট্রিং ট্রাভার্স করুন:
- ডিজিট হলে
num = num*10 + digit '('হলে:retএবংsignস্টকে পুশ করুন, রিসেট করুন')'হলে:retআপডেট করুন, স্টেক থেকে পুরানোsignএবংretপপ করে কম্বাইন করুন'+'/'-'হলে:retআপডেট করুন,signসেট করুন,numরিসেট করুন
- ডিজিট হলে
- শেষে বাকি
numযোগ করুন
C++ কোড উদাহরণ
ইনপুট
"5 + 2 - 3"আউটপুট
4