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

C++ में वर्ण X से शुरू और वर्ण Y से समाप्त होने वाले सबस्ट्रिंग की गिनती


हमें एक स्ट्रिंग str दी गई है। लक्ष्य str में उन सबस्ट्रिंग की संख्या गिनना है जिनका प्रारंभिक वर्ण वर्ण X के समान हो और अंतिम वर्ण वर्ण Y के समान हो। उदाहरण के लिए, यदि इनपुट "artact" है और X='a' और Y='t', तो सबस्ट्रिंग होंगे "art", "act", "artact"। गिनती 3 है।

उदाहरण सहित समझ

इनपुट - str="abcccdef" X='a' Y='c'

आउटपुट - वर्ण X से शुरू और Y से समाप्त होने वाले सबस्ट्रिंग की संख्या: 3

व्याख्या - सबस्ट्रिंग होंगी:

"abc", "abcc", "abccc". कुल 3।

इनपुट - str="tempest" X='t' Y='t'

आउटपुट - वर्ण X से शुरू और Y से समाप्त होने वाले सबस्ट्रिंग की संख्या: 3

व्याख्या - सबस्ट्रिंग होंगी:

"t", "tempest", "t". कुल 3

प्रोग्राम में उपयोग किया गया दृष्टिकोण

हम स्ट्रिंग को ट्रैवर्स करेंगे और X की गिनती बढ़ाएँगे। यदि फिर Y मिलता है तो X काउंट को उन स्ट्रिंग की गिनती में जोड़ें जो X से शुरू और Y से समाप्त होती हैं।

  • स्ट्रिंग str लें। लंबाई की गणना str.size() के रूप में करें।
  • फंक्शन X_Y(string str, int length, char X, char Y) स्ट्रिंग str, वर्ण X, Y लेता है और str के उन सबस्ट्रिंग की संख्या लौटाता है जो X से शुरू और Y से समाप्त होते हैं।
  • प्रारंभिक काउंट 0 लें।
  • x_total को str में वर्ण X की संख्या के रूप में लें।
  • फॉर लूप का उपयोग करके str को ट्रैवर्स करें। i=0 से i<length तक।
  • यदि str[i] == X, str में X की संख्या बढ़ाएँ (x_total++)।
  • यदि str[i] == Y, x_total को काउंट में जोड़ें। यदि कोई X नहीं था तो x_total 0 होगा, अन्यथा Y उस सबस्ट्रिंग का अंतिम वर्ण है जो X से शुरू हुई थी।
  • वांछित परिणाम के रूप में काउंट लौटाएँ।

उदाहरण

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

int X_Y(string str, int length, char X, char Y) {
    int count = 0;
    int x_total = 0;
    for (int i = 0; i < length; i++) {
        if (str[i] == X) {
            x_total++;
        }
        if (str[i] == Y) {
            count = count + x_total;
        }
    }
    return count;
}

int main() {
    string str = "defaabbcchhkl";
    int length = str.size();
    char X = 'd';
    char Y = 'a';
    cout << "Count of substrings that starts with character X and ends with character Y are: " << X_Y(str, length, X, Y);
    return 0;
}

आउटपुट

Count of substrings that starts with character X and ends with character Y are: 2
  1. - C++ में अपरकेस, लोअरकेस, विशेष वर्ण और संख्यात्मक मानों की गणना

    हमें एक स्ट्रिंग दी गई है जिसमें अपरकेस अक्षर, लोअरकेस अक्षर, विशेष वर्ण और संख्यात्मक मान भी हैं। कार्य स्ट्रिंग में सभी प्रकार के वर्णों, विशेष वर्णों और संख्यात्मक मानों की आवृत्ति की गणना करना है। अपरकेस अक्षर - A-Z जिनके ASCII मान 65-90 हैं, जहां 65 और 90 समावेशी हैं। लोअरकेस अक्षर - a-z जिनक

  1. - C++ में बाइनरी सबस्ट्रिंग्स की गिनती

    मान लीजिए हमारे पास एक स्ट्रिंग s है, हमें उन सन्निहित सबस्ट्रिंग्स की गिनती ढूंढनी है जिनमें 0 और 1 की संख्या समान हो, और इन सबस्ट्रिंग्स में सभी 0 और सभी 1 लगातार समूहित हों। यदि सबस्ट्रिंग्स कई बार आते हैं तो उन्हें उतनी बार गिना जाता है जितनी बार वे होते हैं। इसलिए, यदि इनपुट 11001100 जैसा है,

  1. - C++ में इनपुट (a, b) से 'a' से शुरू और अंत होने वाले DFA बनाने का प्रोग्राम

    दिए गए DFA स्ट्रिंग में a और b वर्ण हैं, जो a वर्ण से शुरू और अंत होने चाहिए, कार्य DFA के माध्यम से यह पता लगाना है कि स्ट्रिंग a से शुरू और अंत होती है या नहीं।DFA (नियतात्मक परिमित ऑटोमेटा) क्या है?कम्प्यूटेशन सिद्धांत में, सैद्धांतिक कंप्यूटर विज्ञान की एक शाखा, नियतात्मक परिमित ऑटोमेटा एक परिमि