এই আর্টিকেলে আপনি জানবেন একটি দিয়ে হয়ে স্ট্রিংয়ে কতগুলো নন-এম্পটি (non-empty) সাবস্ট্রিং তৈরি করা সম্ভব।

ইনপুট: string = "moon" আউটপুট: 10 ব্যাখ্যা: সাবস্ট্রিংগুলো: 'm', 'o', 'o', 'n', 'mo', 'oo', 'on', 'moo', 'oon', 'moon'। ইনপুট: string = "yellow" আউটপুট: 21
স্ট্রিংয়ের দৈর্ঘ্য n হলে, উপরের উদাহরণ থেকে বোঝা যায় সব সম্ভাব্য সাবস্ট্রিং বের করতে হলে দৈর্ঘ্য n, (n-1), (n-2), ..., 2, 1-এর সাবস্ট্রিংগুলো যোগ করতে হবে।
মোট সাবস্ট্রিং = n + (n - 1) + (n - 2) + ... + 2 + 1
= n * (n + 1) / 2
সুতরাং, n হলো স্ট্রিংয়ের দৈর্ঘ্য হলে সাবস্ট্রিং সংখ্যা বের করার সূত্র: n * (n + 1) / 2।
নিচে দিয়ে गयी C++ সিনট্যাক্স ব্যবহার করে এই সমস্যা সমাধান করা যায় −
#include<bits/stdc++.h> using namespace std; int main () { string str = "yellow"; // স্ট্রিংয়ের দৈর্ঘ্য বের করা int n = str.length (); // সূত্র দিয়ে ফলাফল বের করা int number_of_strings = n * (n + 1) / 2; cout << "Number of substrings of a string : " << number_of_strings; return 0; }
Number of substrings of a string: 21
এটি স্ট্রিংয়ের সব সম্ভাব্য সাবস্ট্রিং বের করার সবচেয়ে অপ্টিমিস্টিক এবং সহজ পদ্ধতি।
প্রথমে কোডে .length() ফাংশন দিয়ে স্ট্রিংয়ের দৈর্ঘ্য বের করা হয়েছে এবং সেই মানকে উপরের সূত্রে বসিয়ে ফলাফল প্রিন্ট করা হয়েছে।
এই আর্টিকেলে আমরা একটি স্ট্রিংয়ের সাবস্ট্রিং সংখ্যা বের করার পদ্ধতি ব্যাখ্যা করেছি যেখানে প্রথমে সূত্র তৈরি করা হয়েছে এবং স্ট্রিংয়ের দৈর্ঘ্য দিয়ে ফলাফল বের করা হয়েছে। একই প্রোগ্রাম C, Java, Python ইত্যাদি ভাষায়ও লিখা যায়। আশা করি আপনি এই আর্টিকেলটি সহায়ক পাবেন।