समस्या के अनुसार हमें एक स्ट्रिंग स्ट्र दिया जाता है, हमें दिए गए स्ट्रिंग में सभी सबस्ट्रिंग को गिनना चाहिए। सबस्ट्रिंग एक स्ट्रिंग है जो पहले से मौजूद स्ट्रिंग का एक हिस्सा है जिसका आकार मौजूदा स्ट्रिंग से छोटा या उसके बराबर हो सकता है।
आइए उदाहरणों की मदद से समस्या और उसके समाधान को समझते हैं।
इनपुट - str ="wxyz";
आउटपुट − विशिष्ट सबस्ट्रिंग की संख्या है:10
स्पष्टीकरण - गिने जाने वाले विशिष्ट सबस्ट्रिंग हैं -
wxyz, wxy, wx, w, xyz, xy, x, yz, y, z so their count is 10
इनपुट - str ="zzzz"
आउटपुट − विशिष्ट सबस्ट्रिंग की संख्या है:4
स्पष्टीकरण - गिने जाने वाले विशिष्ट सबस्ट्रिंग हैं -
zzzz, zzz, zz, z
निम्नलिखित कार्यक्रम में उपयोग किया गया दृष्टिकोण इस प्रकार है
-
इनपुट के रूप में एक स्ट्रिंग str लें।
-
एक खाली unordered_set "myset" घोषित करें।
-
लूप मैं 0 से 1 कदम आगे बढ़ता हूं जब तक कि मैं स्ट्रिंग के आकार से छोटा नहीं होता।
-
एक नया स्ट्रिंग स्पेस "" (रिक्त) घोषित करें।
-
लूप j उस समय से शुरू होता है जब मैं 1 कदम आगे बढ़ता हूं जब तक कि j स्ट्रिंग के आकार से छोटा नहीं होता।
-
str[j]
. के साथ प्रत्येक चरण पर स्थान के मान को संयोजित करें -
myset में जगह डालें।
-
-
उत्तर के रूप में str का आकार प्रिंट करें।
उदाहरण
#include<iostream> #include<unordered_set> using namespace std; int main(){ string str = "aaaa"; unordered_set<string> myset; int i, j; for (i = 0; i < str.size(); ++i){ string space = ""; for (j = i; j < str.size(); ++j){ space = space + str[j]; myset.insert(space); } } cout <<"count of distinct substring is: " <<str.size(); return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो हमें निम्न आउटपुट मिलेगा -
count of distinct substring is: 4