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

C++ में पेलिंड्रोम परम्यूटेशन बनाने के लिए न्यूनतम निष्कासन


समस्या कथन

एक स्ट्रिंग S दी गई है, हमें न्यूनतम वर्ण खोजने हैं जिन्हें हम हटा सकते हैं ताकि स्ट्रिंग S का कोई भी परम्यूटेशन पेलिंड्रोम बन जाए

उदाहरण

यदि str = "abcdba" तो हम 1 वर्ण हटाते हैं यानी या तो 'c' या 'd'।

एल्गोरिदम

1. पेलिंड्रोम दो प्रकार के हो सकते हैं, सम लंबाई, और विषम लंबाई पेलिंड्रोम 2. हम इस तथ्य को निकाल सकते हैं कि एक सम लंबाई पेलिंड्रोम में प्रत्येक वर्ण सम संख्या में बार आना चाहिए 3. एक विषम पेलिंड्रोम में प्रत्येक वर्ण सम संख्या में बार आना चाहिए सिवाय एक वर्ण के जो विषम संख्या में बार आता है 4. प्रत्येक वर्ण की आवृत्ति जांचें और विषम संख्या में आने वाले वर्णों को गिनें। फिर परिणाम विषम आवृत्ति वाले वर्णों की कुल संख्या घटा 1 है

उदाहरण

#include <bits/stdc++.h> #define MAX 26 using namespace std; int minCharactersRemoved(string str) {    int hash[MAX] = {0};    for (int i = 0; str[i]; ++i) {       hash[str[i] - 'a']++;    }    int cnt = 0;    for (int i = 0; i < MAX; ++i) {       if (hash[i] & 1) {          ++cnt;       }    }    return (cnt == 0) ? 0 : (cnt - 1); } int main(){    string str = "abcdba";    cout << "हटाए जाने वाले न्यूनतम वर्ण = " <<    minCharactersRemoved(str) << endl;    return 0; }

जब आप उपरोक्त प्रोग्राम को संकलित और निष्पादित करते हैं। यह निम्नलिखित आउटपुट उत्पन्न करता है

आउटपुट

हटाए जाने वाले न्यूनतम वर्ण = 1

  1. - C++ में यूलर सर्किट बनाने के लिए आवश्यक न्यूनतम किनारे

    अवधारणा दिए गए b नोड्स और a किनारों वाले एक अप्रत्यक्ष ग्राफ के संबंध में, कार्य दिए गए ग्राफ में यूलर सर्किट बनाने के लिए आवश्यक न्यूनतम किनारों को निर्धारित करना है। उदाहरण इनपुट b = 3, a = 2 Edges[] = {{1, 2}, {2, 3}} आउटपुट 1 1 को 3 से जोड़कर, हम एक यूलर सर्किट बना सकते हैं। विधि ग्राफ में यू

  1. - C++ में पैलिंड्रोम रिमूवल

    मान लीजिए हमारे पास arr नामक एक पूर्णांक ऐरे है, अब एक चाल में हम इंडेक्स i से j तक एक पैलिंड्रोमिक सबऐरे चुन सकते हैं जहां i <= j, और उस सबऐरे को दिए गए ऐरे से हटा सकते हैं। हमें ध्यान रखना होगा कि सबऐरे को हटाने के बाद, उस सबऐरे के बाएं और दाएं के एलिमेंट्स हटाने से बने गैप को भरने के लिए मूव करें

  1. C++ में जॉब शेड्यूल की न्यूनतम कठिनाई C++ में जॉब शेड्यूल की न्यूनतम कठिनाई

    मान लीजिए हम कार्यों की एक सूची को d दिनों में शेड्यूल करना चाहते हैं। कार्य निर्भर हैं इसलिए, i-वें कार्य पर काम करने के लिए, हमें उन सभी कार्यों j को पूरा करना होगा जहां 0 <= j < i। हमें प्रत्येक दिन कम से कम एक कार्य पूरा करना होगा। एक कार्य शेड्यूल की कठिनाई वास्तव में d दिनों में से प्रत्येक द