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

कम से कम एक बार वर्ण X वाले उपस्ट्रिंग्स की गणना - C++

समस्या विवरण

हमें एक स्ट्रिंग str और एक वर्ण X दिया गया है। लक्ष्य उन उपस्ट्रिंग्स की गणना करना है जिनमें X कम से कम एक बार आता है।

उदाहरण

इनपुट: str = "aabccd", X = 'c'

आउटपुट: 14

व्याख्या: 'c' वाले उपस्ट्रिंग्स: "c", "c", "bc", "cc", "cd", "abc", "bcc", "ccd", "aabc", "abcc", "bccd", "aabcc", "abccd", "aabccd"

इनपुट: str = "settings", X = 's'

आउटपुट: 14

दृष्टिकोण

कुल उपस्ट्रिंग्स = n*(n+1)/2। स्ट्रिंग को पार करें और X से पहले के वर्णों को temp में गिनें। जब X मिले, तो X वाले उपस्ट्रिंग्स की लंबाई temp+1 होगी। शेष वर्ण length-i। कुल नए उपस्ट्रिंग्स = (temp+1) * (length-i)। temp=0 रीसेट करें और जारी रखें।

एल्गोरिदम

  1. स्ट्रिंग str और वर्ण x लें
  2. प्रारंभिक count = 0, temp = 0
  3. प्रत्येक इंडेक्स i के लिए:
    • यदि str[i] == x:
      • count += (temp + 1) * (length - i)
      • temp = 0
    • अन्यथा temp++
  4. count लौटाएँ

C++ कार्यान्वयन

#include <bits/stdc++.h>
using namespace std;

int sub_x(string str, int length, char x) {
    int count = 0;
    int temp = 0;
    
    for (int i = 0; i < length; i++) {
        if (str[i] == x) {
            count += (temp + 1) * (length - i);
            temp = 0;
        } else {
            temp++;
        }
    }
    return count;
}

int main() {
    string str = "abcabbc";
    int length = str.length();
    char x = 'a';
    cout << "Count: " << sub_x(str, length, x);
    return 0;
}

आउटपुट

Count: 19
  1. - C++ में बढ़ते क्रम में सॉर्ट न किए गए कॉलम की संख्या गिनें

    हमें समान लंबाई के स्ट्रिंग्स की एक सरणी दी गई है। लक्ष्य कॉलम ढूंढना है, (स्ट्रिंग्स का मैट्रिक्स) जो बढ़ते क्रम में सॉर्ट नहीं हैं। उदाहरण के लिए, स्ट्रिंग में प्रत्येक पहला कैरेक्टर अगले स्ट्रिंग के पहले कैरेक्टर के साथ तुलना की जाती है और इसी तरह अंतिम स्ट्रिंग तक। यदि वे बढ़ते क्रम में नहीं हैं

  1. - C++ में स्ट्रिंग में सभी पैलिंड्रोम उप-स्ट्रिंग्स की गणना करें

    इस ट्यूटोरियल में, हम स्ट्रिंग में पैलिंड्रोम उप-स्ट्रिंग्स की संख्या खोजने के लिए एक प्रोग्राम पर चर्चा करेंगे।इसके लिए हमें एक स्ट्रिंग दी जाएगी। हमारा कार्य दी गई स्ट्रिंग में लंबाई 3 से अधिक वाले पैलिंड्रोम उप-स्ट्रिंग्स की संख्या गिनना है।उदाहरण#include<bits/stdc++.h> using namespace std;

  1. - C++ में 1 से n तक की संख्याओं में 4 अंक वाली संख्याएं गिनें

    इस ट्यूटोरियल में, हम 1 से n तक की उन संख्याओं को खोजने के लिए एक प्रोग्राम पर चर्चा करेंगे जिनमें 4 एक अंक के रूप में है।इसके लिए हमें एक संख्या n प्रदान की जाएगी। हमारा कार्य उन सभी संख्याओं को गिनना है जिनमें 4 उनके अंकों में से एक के रूप में है और इसे प्रिंट करना है।उदाहरण#include<iostream>