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

C++ में पैलिंड्रोमिक सबस्ट्रिंग की संख्या को अधिकतम करने के लिए स्ट्रिंग को पुनर्व्यवस्थित करें

हमें किसी भी लंबाई की एक स्ट्रिंग 'str' दी गई है। कार्य वर्णों को इस तरह से पुनर्व्यवस्थित करना है कि दिए गए इनपुट स्ट्रिंग से किसी वर्ण को जोड़े या हटाए बिना अधिकतम सबस्ट्रिंग होंगे जो एक पैलिंड्रोम स्ट्रिंग होगी। पैलिंड्रोम स्ट्रिंग वह है जिसमें वर्णों को इस तरह से व्यवस्थित किया जाता है कि वे शुरू और अंतिम से एक ही उच्चारण करते हैं।

आइए इसके लिए विभिन्न इनपुट आउटपुट परिदृश्य देखें -

इनपुट -स्ट्रिंग स्ट्र ="इटिन"

आउटपुट - पैलिंड्रोमिक सबस्ट्रिंग की संख्या को अधिकतम करने के लिए स्ट्रिंग की पुनर्व्यवस्था है:iinnt।

स्पष्टीकरण - हमें एक स्ट्रिंग टाइप वेरिएबल दिया गया है, मान लीजिए, str. अब हम एक इनपुट स्ट्रिंग के वर्णों को इस तरह से पुनर्व्यवस्थित करेंगे कि यह एक अधिकतम पैलिंड्रोम स्ट्रिंग होगी और यदि यह संभव नहीं है तो यह 'NOT POSSIBLE' लौटाएगा। तो दिए गए इनपुट स्ट्रिंग के साथ आउटपुट 'iinnt' है।

इनपुट - स्ट्रिंग स्ट्र ="अबाआब"

आउटपुट - पैलिंड्रोमिक सबस्ट्रिंग की संख्या को अधिकतम करने के लिए स्ट्रिंग की पुनर्व्यवस्था है:आआआबब।

स्पष्टीकरण - हमें एक स्ट्रिंग टाइप वेरिएबल दिया गया है, मान लीजिए, str. अब हम एक इनपुट स्ट्रिंग के वर्णों को इस तरह से पुनर्व्यवस्थित करेंगे कि यह एक अधिकतम पैलिंड्रोम स्ट्रिंग होगी और यदि यह संभव नहीं है तो यह 'NOT POSSIBLE' लौटाएगा। तो दिए गए इनपुट स्ट्रिंग के साथ आउटपुट आआआबब है'

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

  • स्ट्रिंग प्रकार का एक वेरिएबल इनपुट करें, मान लें, str और स्ट्रिंग के आकार की गणना करें और इसे वैरिएबल नामक लंबाई में स्टोर करें।

  • फ़ंक्शन को डेटा पास करें Rearr_string(str, length).

  • समारोह के अंदर Rearr_string(str, length)

    • आकार 26 के पूर्णांक प्रकार की एक सरणी घोषित करें, मान लें, arr[26] और इसे 0 से प्रारंभ करें।

    • टाइप स्ट्रिंग का एक अस्थायी चर 'अस्थायी' घोषित करें।

    • I से 0 तक के लिए लूप प्रारंभ करें जब तक कि i लंबाई से कम न हो। लूप के अंदर, arr[str[i] - 'a']++ सेट करें।

    • लूप फॉर i से 0 तक i से i तक 26 से कम शुरू करें। लूप के अंदर, j से 0 तक j से arr [i] से कम के लिए एक और लूप प्रारंभ करें। लूप के अंदर, temp को temp + (char)(97 + i) पर सेट करें।

    • वापसी अस्थायी।

  • परिणाम प्रिंट करें।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
string Rearr_string(string str, int length){
   int arr[26] = { 0 };
   string temp = "";
   for(int i = 0; i < length; i++){
      arr[str[i] - 'a']++;
   }
   for(int i = 0; i < 26; i++){
      for(int j = 0; j < arr[i]; j++){
         temp = temp + (char)(97 + i);
      }
   }
   return temp;
}
int main(){
   string str = "itinn";
   int length = str.length();
   cout<<"Rearrangement of the string to maximize the number of palindromic substrings is: "<<Rearr_string(str, length);
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा

Rearrangement of the string to maximize the number of palindromic substrings is: iinnt

  1. C++ का उपयोग करके एक स्ट्रिंग के सबस्ट्रिंग की संख्या ज्ञात करें

    इस लेख में, आप किसी दिए गए स्ट्रिंग में बनाए जा सकने वाले सबस्ट्रिंग (गैर-रिक्त) की संख्या को खोजने के तरीकों के बारे में जानेंगे। Input : string = “moon” Output : 10 Explanation: Substrings are ‘m’, ‘o’, ‘o’, ‘n’, ‘mo’, &lsqu

  1. C++ में वर्णानुक्रम में सबस्ट्रिंग की संख्या ज्ञात कीजिए

    मान लीजिए कि हमारे पास लंबाई n की एक स्ट्रिंग है। इसमें केवल बड़े अक्षर होते हैं। हमें उन सबस्ट्रिंग्स की संख्या ज्ञात करनी है जिनका वर्ण वर्णानुक्रम में घटित हो रहा है। सबस्ट्रिंग का न्यूनतम आकार 2 होगा। इसलिए यदि स्ट्रिंग इस तरह है:REFJHLMNBV, और सबस्ट्रिंग गिनती 2 है, तो वे EF और MN हैं। तो इसे

  1. सी ++ प्रोग्राम किसी दिए गए स्ट्रिंग के क्रमपरिवर्तन की संख्या का पता लगाने के लिए

    हम एक स्ट्रिंग के पात्रों को अलग-अलग क्रम में व्यवस्थित कर सकते हैं। यहां हम देखेंगे कि हम कैसे गिन सकते हैं कि किसी दिए गए स्ट्रिंग से कितने क्रमपरिवर्तन बन सकते हैं। हम जानते हैं कि यदि एक स्ट्रिंग abc है। इसमें तीन वर्ण हैं; हम उन्हें 3 में व्यवस्थित कर सकते हैं! =6 अलग-अलग तरीके। तो n वर्णों वा