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

C++ में बाइनरी स्ट्रिंग S के योग के लिए आवश्यक न्यूनतम ऑपरेशन

समस्या कथन

एक बाइनरी स्ट्रिंग str दी गई है। str द्वारा दर्शाई गई संख्या बनाने के लिए किए जाने वाले न्यूनतम ऑपरेशन की संख्या ढूंढें। केवल निम्न ऑपरेशन किए जा सकते हैं:

  • 2ˣ जोड़ें
  • 2ˣ घटाएं

यदि बाइनरी स्ट्रिंग "1000" है, तो केवल 1 ऑपरेशन करना होगा: 2³ जोड़ें।

यदि बाइनरी स्ट्रिंग "101" है, तो 2 ऑपरेशन करने होंगे: 2² + 2⁰ जोड़ें।

C++ उदाहरण

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

int getMinOperations(string s) {
    reverse(s.begin(), s.end());
    int n = s.length();
    int result[n + 1][2];
    
    if (s[0] == '0') result[0][0] = 0;
    else result[0][0] = 1;
    result[0][1] = 1;
    
    for (int i = 1; i < n; ++i) {
        if (s[i] == '0') {
            result[i][0] = result[i - 1][0];
            result[i][1] = 1 + min(result[i - 1][1], result[i - 1][0]);
        } else {
            result[i][1] = result[i - 1][1];
            result[i][0] = 1 + min(result[i - 1][0], result[i - 1][1]);
        }
    }
    return result[n - 1][0];
}

int main() {
    string str = "101";
    cout << "Minimum required operations = " << getMinOperations(str) << endl;
    return 0;
}

आउटपुट

Minimum required operations = 2
  1. - दुश्मन को हराने के लिए आवश्यक न्यूनतम ऑपरेशन्स की संख्या ज्ञात करने का C++ प्रोग्राम

    मान लीजिए हम एक वीडियो गेम खेल रहे हैं जहाँ नायक चाकू से दुश्मनों को हराता है। नायक चाकू से दुश्मन पर वार कर सकता है या उसे फेंक सकता है। यदि नायक चाकू फेंकता है, तो उसे वापस नहीं पाया जा सकता। चाकू i द्वारा पहुँचाई गई क्षति knives सरणी में दी गई है जहाँ प्रत्येक तत्व {slash, throw} प्रारूप में है।

  1. C++ में स्ट्रिंग के सबस्ट्रिंग्स की संख्या निकालना C++ में स्ट्रिंग के सबस्ट्रिंग्स की संख्या निकालना

    इस लेख में, आप एक दी गई स्ट्रिंग में बनने वाले सबस्ट्रिंग्स (गैर-खाली) की संख्या निकालने के दृष्टिकोण के बारे में जानेंगे।इनपुट: string = moon आउटपुट: 10 व्याख्या: सबस्ट्रिंग्स हैं m, o, o, n, mo, oo, on, moo, oon और moon। इनपुट: string = yellow आउटपुट: 21समाधान खोजने का दृष्टिकोणमान लें स्ट्रिंग की

  1. - C++ में किसी संख्या के गुणनखंडों का न्यूनतम योग ढूंढना

    यहां हम देखेंगे कि किसी दी गई संख्या के गुणनखंडों का न्यूनतम योग कैसे प्राप्त करें। मान लीजिए एक संख्या 12 है। हम इसे अलग-अलग तरीकों से गुणनखंडित कर सकते हैं: 12 = 12 × 1 (12 + 1 = 13) 12 = 2 × 6 (2 + 6 = 8) 12 = 3 × 4 (3 + 4 = 7) 12 = 2 × 2 × 3 (2 + 2 + 3 = 7) न्यूनतम योग 7 है। हम