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

C++ দিয়ে অন্য একটি স্ট্রিংএ এক স্ট্রিংয়ের সাবস্ট্রিং-এর সংখ্যা বের করা

এই আর্টিকেলে, আমাদের দুটি স্ট্রিং দেওয়া আছে। আমাদের বের করতে হবে প্রথম স্ট্রিংয়ের কতগুলো সাবস্ট্রিং (substring) দ্বিতীয় স্ট্রিংয়ে পাওয়া যায় (একই সাবস্ট্রিং একাধিকবারও থাকতে পারে)। উদাহরণ −

ইনপুট: string1 = "fogl", string2 = "google" আউটপুট: 6 ব্যাখ্যা: string1-এর string2-এ পাওয়া যাওয়া সাবস্ট্রিং: ["o", "g", "l", "og", "gl", "ogl"]।
ইনপুট: string1 = "ajva", string2 = "java" আউটপুট: 5 ব্যাখ্যা: সাবস্ট্রিং: ["a", "j", "v", "a", "va"]।
সমাধানের পদ্ধতি

এই সমস্যা সমাধানের জন্য: প্রথমে string1-এর সব সম্ভাব্য সাবস্ট্রিং বের করব, তারপর প্রতিটি সাবস্ট্রিং চেক করব যে সেটি string2-এ আছে কিনা। থাকলে কাউন্টার বাড়াব, পুরো স্ট্রিং প্রসেস হলে কাউন্টারের মান ফেরত দিব।

উপরোক্ত পদ্ধতির C++ কোড

নিচে দিয়ে गयी C++ সিনট্যাক্স ব্যবহার করে এই সমস্যা সমাধান করা যায় −

উদাহরণ
#include<iostream> #include<string> using namespace std; int main() {     string str1 = "ajva";     string str2 = "java";     int count = 0; // ফলাফল রাখার কাউন্টার     int n = str1.length();     for (int i = 0; i < n; i++) {       string str3; // string1-এর সাবস্ট্রিং রাখতে       for (int j = i; j < n; j++) {           str3 += str1[j];           // চেক করা সাবস্ট্রিংটি অন্য স্ট্রিংয়ে আছে কিনা           if (str2.find(str3) != string::npos)             count++;       }     }     cout << "Number of substrings of one string present in other : " << count;     return 0; }
আউটপুট
Number of substrings of one string present in other : 5
কোড বোঝা

প্রথমে উভয় স্ট্রিংয়ের মান দেওয়া হয়েছে এবং কাউন্টার ০ দিয়ে ইনিশিয়ালাইজ। পুরো স্ট্রিং ট্রাভার্স করে str1-এর সব সাবস্ট্রিং বের করে str3-তে রাখা হয়েছে। তারপর প্রতিটি সাবস্ট্রিং str2-এ আছে কিনা চেক করা হয়েছে; থাকলে কাউন্টার ১ বাড়ানো হয়েছে। অবশেষে কাউন্টার ভেরিয়েবলে সংরক্ষিত আউটপুট প্রিন্ট করা হয়েছে।

উপসংহার

এই আর্টিকেলে একটি স্ট্রিংয়ের সাবস্ট্রিং অন্য স্ট্রিংয়ে আছে কিনা চেক করে গণনা করার সহজ সমাধান দেওয়া হয়েছে। একই প্রোগ্রাম C, Java, Python ইত্যাদি ভাষায়ও লিখা যায়। আশা করি আপনি এই আর্টিকেলটি সহায়ক পাবেন।

  1. C++ ব্যবহার করে পেন্টাগোনাল পিরামিডাল সংখ্যা নির্ণয় করুন

  2. C++ দিয়ে একটি স্ট্রিংয়ের সাবস্ট্রিং-এর সংখ্যা বের করা

  3. C++ দিয়ে মানুষ জোড়া বাঁধার উপায়ের সংখ্যা বের করা

  4. C++-এ ট্রেন স্টপেজ স্টেশন সংখ্যা বের করুন