কম্পিউটার

পাইথনে বেসিক ক্যালকুলেটর II


ধরুন আমাদের একটি সাধারণ এক্সপ্রেশন স্ট্রিং মূল্যায়ন করার জন্য একটি মৌলিক ক্যালকুলেটর প্রয়োগ করতে হবে। এক্সপ্রেশন স্ট্রিং শুধুমাত্র অ-নেতিবাচক পূর্ণসংখ্যা ধারণ করবে, কিছু অপারেটর যেমন +, -, *, / এবং খালি স্থান। পূর্ণসংখ্যা বিভাজন শুধুমাত্র ভাগফল অংশ নিতে হবে।

সুতরাং ইনপুট যদি “3+2*2” এর মত হয়, তাহলে আউটপুট হবে 7।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • একটি স্ট্যাক s, i :=0, x :=একটি খালি স্ট্রিং সংজ্ঞায়িত করুন
  • প্রতিটি অক্ষরের জন্য s
      এ j
    • যদি j একটি ফাঁকা অক্ষর না হয়
      • x এর সাথে j যোগ করুন
  • s :=x, n :=x এর দৈর্ঘ্য
  • যখন আমি
  • যদি s[i] হয় ‘/’, তাহলে
    • i 1 দ্বারা বাড়ান
    • num :=সংখ্যাটি ith সূচক থেকে শুরু করে, তারপর সংখ্যাটির শেষ অক্ষর হিসাবে i আপডেট করুন
    • যদি স্ট্যাক টপ এলিমেন্ট <0 হয়, তাহলে স্ট্যাক টপ এলিমেন্ট আপডেট করুন -(স্ট্যাক টপ / num), অন্যথায় স্ট্যাক টপ এলিমেন্ট আপডেট করুন (স্ট্যাক টপ / num) হিসেবে
  • অন্যথায় যখন s[i] =“*”
    • i 1 দ্বারা বাড়ান
    • num :=সংখ্যাটি ith সূচক থেকে শুরু করে, তারপর সংখ্যাটির শেষ অক্ষর হিসাবে i আপডেট করুন
    • স্ট্যাক টপ :=সংখ্যা * স্ট্যাক টপ
  • অন্যথায় যখন s[i] =‘-’
    • i 1 দ্বারা বাড়ান
    • num :=সংখ্যাটি ith সূচক থেকে শুরু করে, তারপর সংখ্যাটির শেষ অক্ষর হিসাবে i আপডেট করুন
    • স্ট্যাকের মধ্যে -সংখ্যা ঢোকান
  • অন্যথায়
    • num :=সংখ্যাটি ith সূচক থেকে শুরু করে, তারপর সংখ্যাটির শেষ অক্ষর হিসাবে i আপডেট করুন
    • স্ট্যাকের মধ্যে সংখ্যা সন্নিবেশ করান
    • i 1 দ্বারা বাড়ান
  • স্ট্যাকের উপাদানগুলির যোগফল ফেরত দিন
  • আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

    উদাহরণ

    শ্রেণির সমাধান(অবজেক্ট):def calculate(self, s):""" :type s:str :rtype:int """ stack =[] i =0 x="" এর জন্য s:যদি j !=" ":x+=j s =x n =len(s) যখন i 

    ইনপুট

    "3+2*2"

    আউটপুট

    7

    1. Python-এ Binary Tree Postorder Traversal

    2. পাইথনে হিস্টোগ্রামে সবচেয়ে বড় আয়তক্ষেত্র

    3. পাইথনে বৃষ্টির পানি আটকানো

    4. পাইথন ব্যবহার করে বেসিক ক্যালকুলেটর প্রোগ্রাম