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

C++ में सभी तीन वर्णों वाले सबस्ट्रिंग की संख्या


मान लीजिए कि हमने एक स्ट्रिंग s दी है जिसमें केवल a, b और c अक्षर हैं। हमें इन सभी वर्णों a, b और c की कम से कम एक घटना वाले सबस्ट्रिंग की संख्या वापस करनी होगी। तो उदाहरण के लिए, यदि स्ट्रिंग "abcabc" है, तो आउटपुट 10 होगा, क्योंकि सबस्ट्रिंग में वर्णों की कम से कम एक घटना होती है a, b और c, ये "abc", "abca", "abcab" हैं। "abcabc", "bca", "bcab", "cab", "cabc" और "abc" (फिर से अंतिम भाग के लिए)।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • ret :=0, m नाम का एक नक्शा बनाएं, j सेट करें:=0

  • मैं के लिए 0 से s के आकार की सीमा में

    • मानचित्र में s[i] की संख्या बढ़ाएँ m

    • जबकि m['a']> 0 और m['b']> 0 और m['c']> 0,

      • मानचित्र m में s[i] की संख्या कम करें

      • j को 1 से बढ़ाएँ

    • j द्वारा रिट बढ़ाएँ

  • वापसी रिट

उदाहरण (C++)

आइए एक बेहतर समझ प्राप्त करने के लिए निम्नलिखित कार्यान्वयन देखें -

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
   int numberOfSubstrings(string s) {
      int ret = 0;
      map <char, int> m;
      int j = 0;
      for(int i = 0; i < s.size(); i++){
         m[s[i]]++;
         while(m['a'] > 0 && m['b'] > 0 && m['c'] > 0){
            m[s[j]]--;
            j++;
         }
         ret += j;
      }
      return ret;
   }
};
main(){
   Solution ob;
   cout << (ob.numberOfSubstrings("abcabc"));
}

इनपुट

"abcabc"

आउटपुट

10

  1. सबस्ट्रिंग की संख्या 8 से विभाज्य है और C++ में 3 से नहीं

    0-9 की एक स्ट्रिंग दी गई है। इस समस्या के लिए, हमें उन स्ट्रिंग्स की संख्या की गणना करने की आवश्यकता है जो 8 से विभाज्य हैं और 3 से नहीं। यह एक 2 कदम की समस्या है, और हमें इसे हल करने के लिए एक बार में कोड को एक कदम करने की आवश्यकता है, उदाहरण के लिए इनपुट str = "80" आउटपुट 2 इनपुट s

  1. C++ में पूर्णांकों की एक स्ट्रिंग में 6 से विभाज्य सबस्ट्रिंग की संख्या

    हम एक समस्या को देखेंगे जिसमें हमें एक पूर्णांक स्ट्रिंग दी गई है और यह निर्धारित करना होगा कि पूर्णांक प्रारूप में कितने सबस्ट्रिंग 6 से विभाज्य हैं। यह ध्यान दिया जाना चाहिए कि इनपुट संख्याओं (पूर्णांक) से बने स्ट्रिंग के रूप में है। फिर भी, विभाज्यता जांच इसे केवल एक पूर्णांक के रूप में मानते हुए

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

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