Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

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 एक्सओआर 1 एक्सओआर 0 और 1
1 एक्सओआर 1 एक्सओआर 0 और 1
0 एक्सओआर 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. सी ++ में एक int को स्ट्रिंग में कैसे परिवर्तित करें?

    आप एक int को स्ट्रिंग में बदलने के लिए C से itoa फ़ंक्शन का उपयोग कर सकते हैं। उदाहरण #include<iostream> int main() {    int a = 10;    char *intStr = itoa(a);    string str = string(intStr);    cout << str; } आउटपुट यह आउटपुट देगा - 10 यह पूर्ण

  1. सी ++ में टर्नरी अभिव्यक्ति का मूल्यांकन करने का कार्यक्रम

    मान लीजिए कि हमारे पास एक अभिव्यक्ति है जो त्रिगुट अभिव्यक्ति रखती है, हमें अभिव्यक्ति के परिणाम का मूल्यांकन करना होगा। यह सही और गलत के लिए टी और एफ जैसे कुछ मूल्यों का समर्थन करता है और ? और : अक्षर। कुछ गुण हैं: दिए गए स्ट्रिंग की लंबाई 10000 से कम या उसके बराबर होनी चाहिए। सशर्त अभिव्यक्ति समू

  1. कार्यक्रम अजगर में एक स्ट्रिंग से बूलियन अभिव्यक्ति का मूल्यांकन करने के लिए?

    मान लीजिए कि हमारे पास एक स्ट्रिंग है जिसमें ऑपरेटरों और और या के साथ एक बूलियन अभिव्यक्ति है, इसका मूल्यांकन करें और परिणाम लौटाएं। यहां भावों में कोष्ठक हो सकते हैं, जिनका मूल्यांकन पहले किया जाना चाहिए। इसलिए, यदि इनपुट s =T और (F या T) जैसा है, तो आउटपुट सही होगा इसे हल करने के लिए, हम इन चरणो