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

C++ में स्ट्रिंग के रूप में दर्शाए गए बूलियन एक्सप्रेशन का मूल्यांकन


इस समस्या में, हमें एक स्ट्रिंग exp दी गई है जो एक बूलियन एक्सप्रेशन को दर्शाती है। हमारा कार्य स्ट्रिंग के रूप में दर्शाए गए बूलियन एक्सप्रेशन का मूल्यांकन करना है।

एक्सप्रेशन में मान्य कैरेक्टर हैं:

  • 0 या 1 जो बूलियन मान को दर्शाते हैं
  • & जो AND ऑपरेशन को दर्शाता है
  • | जो OR ऑपरेशन को दर्शाता है
  • ^ जो XOR ऑपरेशन को दर्शाता है

हमें इस एक्सप्रेशन को हल करके परिणाम वापस करना है।

उदाहरण से समझते हैं:

इनपुट: str = 1&1|0^1^0&1

आउटपुट: 0

व्याख्या:

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

समाधान दृष्टिकोण:

एक सरल समाधान वर्तमान मानों की जांच करके और फिर एक-एक करके ऑपरेशन करना है। इसके लिए हम स्ट्रिंग के 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 को string में कैसे कन्वर्ट करें?

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

  1. - टर्नरी एक्सप्रेशन का मूल्यांकन करने का C++ प्रोग्राम

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

  1. - पायथन में स्ट्रिंग से बूलियन अभिव्यक्ति का मूल्यांकन करने का प्रोग्राम

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