কম্পিউটার

C++ এ স্ট্রিং হিসেবে উপস্থাপিত একটি বুলিয়ান এক্সপ্রেশনের মূল্যায়ন করুন


এই সমস্যায়, আমাদেরকে একটি স্ট্রিং এক্সপ্রেশন দেওয়া হয়েছে যা একটি বুলিয়ান এক্সপ্রেশনকে উপস্থাপন করে। আমাদের কাজ হল স্ট্রিং হিসাবে উপস্থাপিত বুলিয়ান এক্সপ্রেশন মূল্যায়ন করা।

অভিব্যক্তিতে বৈধ অক্ষর হল −

0 বা 1 বুলিয়ান মান নির্দেশ করে
এবং বোঝানো এবং অপারেশন

| বোঝানো বা অপারেশন
^ XOR অপারেশন নির্দেশ করে

আমাদের এই অভিব্যক্তিটি সমাধান করতে হবে এবং ফলাফলটি ফেরত দিতে হবে।

সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,

ইনপুট: str =1&1|0^1^0&1

আউটপুট: 0

ব্যাখ্যা:

1&1|0^1^0&1

1 এবং 1 বা 0 XOR 1 XOR 0 এবং 1

1 বা 0 XOR 1 XOR 0 এবং 1
1 XOR 1 XOR 0 এবং 1
0 XOR 0 এবং 1
0 এবং 1

0

সমাধান পদ্ধতি:


একটি সহজ সমাধান হল বর্তমান মান পরীক্ষা করা এবং তারপর একে একে অপারেশন করা। এর জন্য আমরা স্ট্রিংটির 3-3টি অক্ষর বিবেচনা করব এবং তারপর তাদের ফলাফল ফিরিয়ে দেব।

আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম,

উদাহরণ

#include <iostream>
using namespace std;

int andOperation(int a, int b){
   return a & b;
}

int orOperation(int a, int b){
   return a | b;
}

int xorOperation(int a, int b){
   return a^b;
}

char solveExpression(string s) {
   
   int n = s.length();

   for (int i = 0; i < n; i += 2) {

      if (s[i + 1] == '&') {
            s[i + 2] = andOperation(s[i], s[i + 2]);
      }
      else if (s[i + 1] == '+') {
            s[i + 2] = orOperation(s[i], s[i + 2]);
      }
      else {
            s[i + 2] = xorOperation(s[i], s[i + 2]);
      }
   }
   return s[n - 1] ;
}

int main() {
   
   string expr = "0^1+0+1&1";
   cout<<"The result of expression "<<expr<<" is "<<solveExpression(expr);
   return 0;
}

আউটপুট −

The result of expression 0^1+0+1&1 is 1

  1. কিভাবে C++ একটি int-এ একটি স্ট্রিং পার্স করবেন?

  2. কিভাবে একটি int কে C++ এ স্ট্রিং এ রূপান্তর করবেন?

  3. C++ তে ত্রিদেশীয় অভিব্যক্তি মূল্যায়ন করার জন্য প্রোগ্রাম

  4. পাইথনে একটি স্ট্রিং থেকে বুলিয়ান এক্সপ্রেশন মূল্যায়ন করার জন্য প্রোগ্রাম?