কম্পিউটার

C++ এ ইটারেটিভ মেথড ব্যবহার করে একটি স্ট্রিং এর সমস্ত অনুবর্তন মুদ্রণ করুন


এই সমস্যায়, আমাদের একটি স্ট্রিং দেওয়া হয়েছে এবং আমাদের প্রদত্ত স্ট্রিং থেকে সাবস্ট্রিং খুঁজে বের করতে হবে। পাওয়া সাবস্ট্রিংটি একটি স্বর দিয়ে শুরু হওয়া উচিত এবং ধ্রুবক অক্ষর দিয়ে শেষ করা উচিত।

একটি স্ট্রিং অক্ষরের একটি অ্যারে।

এই সমস্যায় যে সাবস্ট্রিং তৈরি করা হবে তা স্ট্রিংয়ের কিছু অক্ষর মুছে দিয়ে তৈরি করা যেতে পারে। এবং স্ট্রিং এর ক্রম পরিবর্তন না করে।

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. একটি স্ট্রিংয়ের সমস্ত স্বতন্ত্র অক্ষর C++ ক্রমে প্রিন্ট করুন

  2. C++ এ একটি স্ট্রিং-এ সব মজার শব্দ প্রিন্ট করুন

  3. C++ এ পুনরাবৃত্তিমূলক পদ্ধতি ব্যবহার করে বাইনারি গাছের সমস্ত লিফ নোড বাম থেকে ডানে মুদ্রণ করুন

  4. C++ এ DFS ব্যবহার করে একটি n-ary গাছের সমস্ত পাতার নোড প্রিন্ট করুন