কম্পিউটার টিউটোরিয়াল

স্বরবর্ণ দিয়ে শুরু হয়ে ব্যঞ্জনবর্ণ দিয়ে শেষ হওয়া স্ট্রিংয়ের সাবসিকোয়েন্স প্রিন্ট করা C++-তে


এই সমস্যায়, একটি স্ট্রিং দেওয়া থাকে এবং আমাদের দেওয়া স্ট্রিং থেকে সাবস্ট্রিং খুঁজে বের করতে হবে। খুঁজে বের করার সাবস্ট্রিংটি স্বরবর্ণ দিয়ে শুরু হবে এবং ব্যঞ্জনবর্ণ দিয়ে শেষ হবে।

একটি স্ট্রিং হলো ক্যারেক্টারদের একটি অ্যারে।

এই সমস্যায় জেনারেট করা সাবস্ট্রিংটি স্ট্রিংয়ের কিছু ক্যারেক্টার ডিলিট করে তৈরি করা যায়। এবং স্ট্রিংয়ের অর্ডার পরিবর্তন ছাড়া।

ইনপুট: 'abc' আউটপুট: ab, ac, abc

এই সমস্যাটি সমাধান করতে, আমরা স্ট্রিংটি ইটারেট করব এবং स्वरবর্ণ ফিক্স করব এবং পরবর্তী সিকোয়েন্স চেক করব। একটি অ্যালগরিদম দেখা যাক:

অ্যালগরিদম

ধাপ ১: স্ট্রিংয়ের প্রতিটি ক্যারেক্টার ইটারেট করুন, ভেরিয়েবল i দিয়ে। ধাপ ২: যদি i-তম ক্যারেক্টার स्वरবর্ণ হয়। ধাপ ৩: যদি j-তম ক্যারেক্টার ব্যঞ্জনবর্ণ হয়। ধাপ ৪: হ্যাশসেটে যোগ করুন, ১ম ক্যারেক্টার থেকে j-তম ক্যারেক্টার পর্যন্ত সাবস্ট্রিং। ধাপ ৫: নিচের ধাপগুলো পুনরাবৃত্তি করে স্ট্রিং থেকে সাবস্ট্রিং খুঁজে বের করুন।

C++ উদাহরণ

#include <bits/stdc++.h> using namespace std; set<string> st; bool isaVowel(char c); bool isaConsonant(char c); void findSubSequence(string str); int main(){ string s = "abekns"; findSubSequence(s); cout<<"The substring generated are :\n"; for (auto i : st) cout<<i<<" "; cout << endl; return 0; } bool isaVowel(char c) { return (c=='a'||c=='e'||c=='i'||c=='o'||c=='u'); } bool isaConsonant(char c) { return !isaVowel(c); } void findSubSequence(string str) { for (int i = 0; i < str.length(); i++) { if (isaVowel(str[i])) { for (int j = str.length() - 1; j >= i; j--) { if (isaConsonant(str[j])) { string str_sub = str.substr(i, j + 1); st.insert(str_sub); for (int k = 1; k < str_sub.length() - 1; k++){ string sb = str_sub; sb.erase(sb.begin() + k); findSubSequence(sb); } } } } } }

আউটপুট

জেনারেট হওয়া সাবস্ট্রিংগুলো হলো:

ab abek abekn abekns abeks aben abens abes abk abkn abkns abks abn abns abs aek aekn aekns aeks aen aens aes ak akn akns aks an ans as ek ekn ekns eks en ens es
  1. বিজোড় এবং জোড় সংখ্যক নোড वाले ট্রি লেভেল প্রিন্ট করা C++-তে

  2. স্ট্রিংয়ের সব প্যালিনড্রোমিক পার্টিশন প্রিন্ট করা C++-তে

  3. ক্যারেক্টার রিপিটিশন সহ স্ট্রিংয়ের সব পারমুটেশন প্রিন্ট করা C++-তে

  4. জাভাতে স্বরবর্ণ দিয়ে শুরু হওয়া এবং নির্দিষ্ট দৈর্ঘ্যের শব্দ এক্সট্র্যাক্ট করা