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

लंबाई K के सबस्ट्रिंग की अधिकतम संख्या C++ में समान वर्णों से मिलकर बनी है

कार्य को देखते हुए लंबाई के सबस्ट्रिंग की अधिकतम संख्या ज्ञात करना है K समान पात्रों से मिलकर। एक स्ट्रिंग s और दूसरा पूर्णांक दिया गया K , हमें K . आकार के उप-स्ट्रिंग की घटना को गिनना होगा जिनके समान वर्ण हैं।

जो उप-स्ट्रिंग पाए जाते हैं, उनमें से हमें उस उप-स्ट्रिंग को चुनना होगा जो अधिकतम समय में घटित हो।

आइए अब समझते हैं कि हमें एक उदाहरण का उपयोग करके क्या करना है -

इनपुट

s = ”tuuxyyuuc”, K = 2

आउटपुट

2

स्पष्टीकरण

यहां लंबाई 2 और समान वर्ण वाले उप-स्ट्रिंग हैं:"uu" और "yy" लेकिन जैसा कि यह देखा जाता है कि "yy" केवल 1 बार होता है और "uu" 2 बार मौजूद होता है। इसलिए आउटपुट 2 हो जाता है।

इनपुट

s = “hhigggff”, K = 3

आउटपुट

1

निम्नलिखित कार्यक्रम में उपयोग किया गया दृष्टिकोण इस प्रकार है

  • मैक्स () फ़ंक्शन में, अंतिम उत्तर को स्टोर करने के लिए int ans =0 को इनिशियलाइज़ करें, स्ट्रिंग के आकार को स्टोर करने के लिए size =str.size() और उन वर्णों को संग्रहीत करने के लिए char c घोषित करें जिनकी हमें जाँच करने की आवश्यकता है।

  • j =0 से j <26 तक लूप करें और c ='a' + j लगाएं क्योंकि हम प्रत्येक वर्ण की जांच करेंगे।

  • वर्तमान वर्ण वाले उप-सरणी की घटना को संग्रहीत करने के लिए परिवर्तनीय int CurrCh =0 प्रारंभ करें।

  • i =0 से i <=आकार – K तक लूप करें और जांचें कि क्या (str[i] !=c)। यदि ऐसा है, तो जारी रखें जोड़ें; बयान।

  • वर्तमान वर्ण की उप-सरणी की लंबाई को संग्रहीत करने के लिए गिनती =0 प्रारंभ करें।

  • कंडीशन के साथ थोड़ी देर का लूप बनाएं (i गिनती . जबकि लूप के बाहर मैं 1 से कम हो जाता हूं।

  • जांचें कि क्या (गिनती ==के)। अगर ऐसा है, तो CurrCh में वृद्धि करें ।

  • दूसरा फॉर लूप बंद करें और Ans . का मान अपडेट करें ans =max(ans, CurrCh) डालकर।

  • अंत में पहले फॉर लूप को बंद करें और उत्तर . लौटाएं ।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int Max(string str, int K){
   int ans = 0, size = str.size();
   char c;
   //Checking for all characters
   for (int j = 0; j < 26; j++){
      c = 'a' + j;
      //checking for current character
      int CurrCh = 0;
      for (int i = 0; i <= size - K; i++){
         if (str[i] != c)
            continue;
         //Counting the size of sub-string
         int count = 0;
         while (i < size && count != K && str[i] == c){
            i++;
            count++;
         }
         i--;
         //Increment CurrCh if sub-string has length K
         if (count == K)
            CurrCh++;
      }
      //Update ans
      ans = max(ans, CurrCh);
   }
   return ans;
}
//main function
int main(){
   string str = "tuuuxyuuu";
   int K = 3;
   cout << Max(str, K);
   return 0;
}

आउटपुट

2

  1. अधिकतम समूह गिनने के लिए C++ कोड बनाया जा सकता है

    मान लीजिए कि हमारे पास n तत्वों के साथ एक सरणी A है। छात्रों के n समूह थे। एक समूह या तो एक व्यक्ति होता है जो किसी और के साथ कोड लिख सकता है, या दो लोग जो एक ही टीम में कोड लिखना चाहते हैं। लेकिन मेंटर ने ठीक तीन लोगों की टीम बनाने का फैसला किया। हमें अधिकतम तीन लोगों की टीम ढूंढनी होगी जो मेंटर बन

  1. सी ++ कोड पहले ढेर पर अधिकतम घास-गांठों की गणना करने के लिए

    मान लीजिए कि हमारे पास n तत्वों के साथ एक सरणी A है और दूसरा मान d है। एक किसान ने फर्म पर n haybalepiles की व्यवस्था की है। Ith ढेर में A[i] घास की गांठें होती हैं। हर दिन एक गाय किसी भी ढेर में एक घास की गठरी को बगल के ढेर में ले जाने का विकल्प चुन सकती है। गाय इसे एक दिन में कर सकती है अन्यथा कुछ

  1. सी ++ पथ लंबाई जिसमें अधिकतम संख्या में मोड़ हैं

    एक समस्या को हल करने के लिए जिसमें हमें एक बाइनरी ट्री दिया जाता है। अब हमें उस पथ को खोजने की आवश्यकता है जिसमें अधिकतम संख्या में मोड़ हों। यानी, एक मोड़ तब माना जाता है जब पथ की दिशा बाएं से दाएं या इसके विपरीत बदलती है, उदाहरण के लिए इनपुट - आउटपुट - 6 अब इस दृष्टिकोण में, हम पेड़ से गुजरें