কম্পিউটার টিউটোরিয়াল

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


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

এক্সপ্রেশনে বৈধ ক্যারেক্টারগুলো হলো:

  • 0 বা 1 বুলিয়ান মান নির্দেশ করে
  • & AND অপারেশন নির্দেশ করে
  • | OR অপারেশন নির্দেশ করে
  • ^ XOR অপারেশন নির্দেশ করে

আমাদের এই এক্সপ্রেশনটি সমাধান করে ফলাফল ফেরত দিতে হবে।

উদাহরণ দিয়ে বুঝি

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

আউটপুট: ০

ব্যাখ্যা:

1&1|0^1^0&1
1 AND 1 OR 0 XOR 1 XOR 0 AND 1
1 OR 0 XOR 1 XOR 0 AND 1
1 XOR 1 XOR 0 AND 1
0 XOR 0 AND 1
0 AND 1
0

সমাধানের পদ্ধতি

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

সমাধান minhaj করার প্রোগ্রাম

#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-এ পার্স করা (String to Int)

  2. C++-এ int কে string-এ রূপান্তর (Integer to String)

  3. C++-তে টার্নারি এক্সপ্রেশন ইভ্যালুয়েট করার প্রোগ্রাম

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