এই টিউটোরিয়ালে, আমরা একটি প্রোগ্রাম লিখতে যাচ্ছি যা প্রদত্ত স্ট্রিং দিয়ে শুরু এবং শেষ হওয়া মোট সাবস্ট্রিংগুলির সংখ্যা খুঁজে বের করে৷
আমাদের একটি স্ট্রিং এবং দুটি সাবস্ট্রিং দেওয়া হয়েছে। প্রদত্ত দুটি সাবস্ট্রিং দিয়ে শুরু এবং শেষ হওয়া বিভিন্ন সাবস্ট্রিং গণনা আমাদের খুঁজে বের করতে হবে। আসুন একটি উদাহরণ দেখি।
ইনপুট
str = "getmesomecoffee" start = "m" end = "e"
আউটপুট
6
প্রদত্ত স্ট্রিংটিতে মোট 6টি ভিন্ন সাবস্ট্রিং রয়েছে। তারা হল me, mesome, mesomemecoffe, mesomemecoffee, mecoffe, mecoffee.
আসুন সমস্যা সমাধানের পদক্ষেপগুলি দেখি৷
৷-
স্ট্রিং শুরু করুন।
-
str এর উপর পুনরাবৃত্তি করুন এবং শুরু এবং শেষ সাবস্ট্রিং সূচী খুঁজুন। সেগুলিকে আলাদা অ্যারেতে সংরক্ষণ করুন৷
৷ -
বিভিন্ন সাবস্ট্রিং সংরক্ষণ করতে একটি সেট শুরু করুন৷
-
স্ট্রের উপর পুনরাবৃত্তি করুন।
-
বর্তমান সূচকটি আমাদের আগে তৈরি করা অ্যারের স্টার্ট স্ট্রিংয়ের সাথে মেলে কিনা তা পরীক্ষা করুন৷
-
যদি আমরা স্টার্ট স্ট্রিং সূচী খুঁজে পাই, তাহলে শেষ স্ট্রিং অনুসন্ধান করুন।
-
আমরা একটি ভেরিয়েবলের শেষ না পাওয়া পর্যন্ত সমস্ত স্ট্রিং যোগ করুন।
-
যখন আমরা শেষ স্ট্রিংটি খুঁজে পাই, তখন সাবস্ট্রিং গণনা বাড়ান এবং সেটটিতে সাবস্ট্রিং যোগ করুন।
-
সাবস্ট্রিং ভেরিয়েবল রিসেট করুন।
-
-
সাবস্ট্রিং গণনা প্রিন্ট করুন।
উদাহরণ
আসুন কোডটি দেখি।
#include <bits/stdc++.h> using namespace std; int getSubstringsCount(string str, string start, string end) { int substrings_count = 0, str_length = str.size(), start_length = start.size(), end_length = end.size(); int start_matches_index[str_length] = {0}, end_matches_index[str_length] = {0}; for (int i = 0; i < str_length; i++) { if (str.substr(i, start_length) == start) { start_matches_index[i] = 1; } if (str.substr(i, end_length) == end) { end_matches_index[i] = 1; } } set<string> substrings; string current_substring = ""; for (int i = 0; i < str_length; i++) { if (start_matches_index[i]) { for (int j = i; j < str_length; j++) { if (!end_matches_index[j]) { current_substring += str[j]; } if (end_matches_index[j]) { current_substring += str.substr(j, end_length); if (substrings.find(current_substring) == substrings.end()) { substrings_count++; } substrings.insert(current_substring); } } current_substring = ""; } } return substrings_count; } int main() { string str = "getmesomecoffee"; string start = "m"; string end = "e"; cout << getSubstringsCount(str, start, end) << endl; return 0; }
আউটপুট
আপনি যদি উপরের প্রোগ্রামটি চালান, তাহলে আপনি নিম্নলিখিত ফলাফল পাবেন।
6
উপসংহার
টিউটোরিয়ালে আপনার কোন প্রশ্ন থাকলে মন্তব্য বিভাগে উল্লেখ করুন।