हमें स्ट्रिंग स्ट्र और लंबाई 3 का एक सबस्ट्रिंग सब_स्ट्र दिया गया है। लक्ष्य स्ट्र में बाद के सब_स्ट्र की गिनती का पता लगाना है। उदाहरण "एक्ट" "मोतियाबिंद" (मोतियाबिंद, मोतियाबिंद, मोतियाबिंद) में तीन बार होता है।
आइए उदाहरणों से समझते हैं।
इनपुट - str="निपटान" sub_str="सेट"
आउटपुट - किसी दिए गए स्ट्रिंग में लंबाई तीन के बाद की गणना हैं: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="ज्ञान" sub_str="अब"
आउटपुट − दी गई स्ट्रिंग में लंबाई तीन के बाद के क्रम की गणना है − 1
स्पष्टीकरण − इसके बाद के परिणाम होंगे - बढ़त को जानें
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
हम लूप के लिए स्ट्रिंग स्ट्र को पार करेंगे। यदि कोई str[i]==sub_str[0] तो अगले वर्ण sub_str[1] की तुलना str[current i से i
-
स्ट्रिंग को str के रूप में लें और सबस्ट्रिंग को sub_str के रूप में लें।
-
फ़ंक्शन सबसेट_ओकरेंस (स्ट्रिंग स्ट्र, इंट लेंथ, स्ट्रिंग सब_स्ट्र) स्ट्रिंग लेता है और स्ट्र में सब_स्ट्र के समान बाद की गिनती देता है।
-
लूप के लिए उपयोग कर ट्रैवर्स स्ट्र। i=0 से i<लंबाई तक।
-
यदि कोई str[i]==sub_str[0], पहला अक्षर मिला। इसके बाद j=i+1 से j<लंबाई तक चेक करें।
-
यदि कोई str[j]==sub_str[1], दूसरा वर्ण मेल खाता है। k=j+1 से k<लंबाई तक आगे चेक करें।
-
अगर 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