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

C++ में Iterative Method का उपयोग करके एक स्ट्रिंग के सभी बाद के अनुक्रमों को प्रिंट करें


इस समस्या में, हमें एक स्ट्रिंग दी जाती है और हमें दिए गए स्ट्रिंग से सबस्ट्रिंग को ढूंढना होता है। पाया जाने वाला विकल्प स्वर से शुरू होना चाहिए और निरंतर वर्ण के साथ समाप्त होना चाहिए।

एक स्ट्रिंग वर्णों की एक सरणी है।

इस समस्या में उत्पन्न होने वाली सबस्ट्रिंग स्ट्रिंग के कुछ वर्णों को हटाकर उत्पन्न की जा सकती है। और स्ट्रिंग के क्रम को बदले बिना।

Input: ‘abc’
Output: ab, ac, abc

इस समस्या को हल करने के लिए, हम स्ट्रिंग को पुनरावृत्त करेंगे और स्वरों को ठीक करेंगे और अगले अनुक्रम की जांच करेंगे। आइए समाधान खोजने के लिए एक एल्गोरिथम देखें -

एल्गोरिदम

Step 1: Iterate of each character of the string, with variable i.
Step 2: If the ith character is a vowel.
Step 3: If the jth character is a consonant.
Step 4: Add to the HashSet, substring from 1st character to jth character.
Step 5: Repeat the following steps and find substrings from the string.

पुनरावृत्त दृष्टिकोण में, हम सभी स्ट्रिंग पर पुनरावृति करेंगे। 1 से 2 तक legth(string) -1.

उदाहरण

#include <bits/stdc++.h>
using namespace std;
string subString(string s, int binary){
   string sub = "";
   int pos;
   while(binary>0){
      pos=log2(binary&-binary)+1;
      sub=s[pos-1]+sub;
      binary= (binary & ~(1 << (pos-1)));
   }
   reverse(sub.begin(),sub.end());
   return sub;
}
void findAllSubStrings(string s){
   map<int, set<string> > sorted_subsequence;
   int len = s.size();
   int limit = pow(2, len);
   for (int i = 1; i <= limit - 1; i++) {
      string sub = subString(s, i);
      sorted_subsequence[sub.length()].insert(sub);
   }
   for (auto it : sorted_subsequence) {
      for (auto ii : it.second)
         cout<<ii<<" ";
      cout<<"\t";
   }
}
int main() {
   string s = "wxyz";
   cout<<"The substring are :\n";
   findAllSubStrings(s);
   return 0;
}

आउटपुट

सबस्ट्रिंग है -

w x y z wx wy wz xy xz yz wxy wxz wyz xyz wxyz

  1. सी++ में एक स्ट्रिंग में सभी अजीब शब्दों को प्रिंट करें

    इस समस्या में हमें एक वाक्य दिया जाता है। हमारा काम वाक्य से सभी स्ट्रिंग्स को प्रिंट करना है जो कि मजेदार शब्द हैं। मजेदार शब्द एक शब्द है जो शर्त का पालन करता है - स्ट्रिंग के आसन्न वर्णों और इसके विपरीत स्ट्रिंग के बीच पूर्ण अंतर बराबर है। |string[0] - string[1]| = |revstring[0]-revstring[1]| आ

  1. C++ में पुनरावृत्त दृष्टिकोण का उपयोग करते हुए बायें से दायें बायने से दायें बायनेरी ट्री के सभी लीफ नोड्स को प्रिंट करें

    इस समस्या में, हमें एक बाइनरी ट्री दिया जाता है और हमें बाइनरी ट्री के सभी लीफ नोड्स को बायें से दायें इटरेटिव अप्रोच प्रिंट करना होता है। आइए समस्या को समझने के लिए एक उदाहरण लेते हैं इनपुट - आउटपुट - 1 4 7 पुनरावृत्त दृष्टिकोण का उपयोग करके इस समस्या को हल करने के लिए, हम गहराई-प्रथम खोज (ड

  1. C++ में DFS का उपयोग करके n-ary ट्री के सभी लीफ नोड्स प्रिंट करें

    इस समस्या में, हमें एक 2-डी सरणी दी जाती है जिसमें एक n-ary का किनारा होता है जहां किनारा n-ary पेड़ के किनारे को परिभाषित करता है। हमें बनाए गए एरी ट्री के सभी लीफ नोड्स को प्रिंट करना होगा। एन-आरी ट्री एक पेड़ है जिसमें अधिकतम n बच्चे हैं यानी एक नोड में 1, 2, ...n चाइल्ड नोड्स हो सकते हैं। आइए