हमें एक स्ट्रिंग str और लंबाई 3 की एक सबस्ट्रिंग sub_str दी गई है। लक्ष्य str में sub_str के सबसीक्वेंस की संख्या ज्ञात करना है। उदाहरण "act" "cataract" में तीन बार है (cataract, cataract, cataract)।
उदाहरण सहित समझ
इनपुट - str="settlement" sub_str="set"
आउटपुट - दी गई स्ट्रिंग में लंबाई तीन के सबसीक्वेंस की संख्या: 5
व्याख्या - सबसीक्वेंस होंगे:
1. set tlement, 2. se t t lement, 3. se ttlemen t, 4. s ettl e men t, 5. settlem e n t
इनपुट - str="knowledge" sub_str="now"
आउटपुट - दी गई स्ट्रिंग में लंबाई तीन के सबसीक्वेंस की संख्या: 1
व्याख्या - सबसीक्वेंस होंगे: know ledge
प्रोग्राम में उपयोग किया गया दृष्टिकोण
हम फॉर लूप का उपयोग करके स्ट्रिंग str को ट्रैवर्स करेंगे। यदि कोई str[i] == sub_str[0] है तो अगले वर्ण sub_str[1] की तुलना str[current i to isub_str[2] की तुलना str[current j to j
- स्ट्रिंग को
strऔर सबस्ट्रिंग कोsub_strके रूप में लें। - फंक्शन
subset_occurrence(string str, int length, string sub_str)स्ट्रिंग लेता है औरstrमेंsub_strके समान सबसीक्वेंस की संख्या लौटाता है। - फॉर लूप का उपयोग करके
strको ट्रैवर्स करें। i=0 से i<length तक। - यदि कोई
str[i] == sub_str[0], पहला वर्ण मिला। अगले की जांच j=i+1 से j<length तक करें। - यदि कोई
str[j] == sub_str[1], दूसरा वर्ण मिला। अगले की जांच k=j+1 से k<length तक करें। - यदि
str[k] == sub_str[2]। काउंट बढ़ाएँ। - परिणाम के रूप में काउंट लौटाएँ।
उदाहरण
#include <iostream>
using namespace std;
int subset_occurrence(string str, int length, string sub_str) {
int count = 0;
for (int i = 0; i < length; i++) {
if (str[i] == sub_str[0]) {
for (int j = i + 1; j < length; j++) {
if (str[j] == sub_str[1]) {
for (int k = j + 1; k < length; k++) {
if (str[k] == sub_str[2]) {
count++;
}
}
}
}
}
}
return count;
}
int main() {
string str = "TUTpoinTUTpoinTUT";
int length = str.length();
string sub_str = "TUT";
cout << "Count of subsequence of length three in a given string are: " << subset_occurrence(str, length, sub_str);
return 0;
}
आउटपुट
Count of subsequence of length three in a given string are: 19