আমাদের একটি স্ট্রিং str দেওয়া আছে। লক্ষ্য হলো str-এ কতগুলো সাবস্ট্রিং আছে যাদের শুরুতে ক্যারেক্টার X এবং শেষে ক্যারেক্টার Y থাকে। উদাহরণস্বরূপ, ইনপুট "artact", X='a', Y='t' হলে সাবস্ট্রিং: "art", "act", "artact"। মোট ৩টি।
উদাহরণ দিয়ে বুঝি
ইনপুট − str="abcccdef", X='a', Y='c'
আউটপুট − X দিয়ে শুরু ও Y দিয়ে শেষ সাবস্ট্রিং: ৩
ব্যাখ্যা − সাবস্ট্রিং: "abc", "abcc", "abccc"। মোট ৩।
ইনপুট − str="tempest", X='t', Y='t'
আউটপুট − X দিয়ে শুরু ও Y দিয়ে শেষ সাবস্ট্রিং: ৩
ব্যাখ্যা − সাবস্ট্রিং: "t", "tempest", "t"। মোট ৩।
প্রোগ্রামে ব্যবহৃত পদ্ধতি
স্ট্রিং ট্রাভার্স করে X-এর কাউন্ট বাড়াব। Y পাওয়া গেলে X-এর কাউন্টকে মোট সাবস্ট্রিং কাউন্টে যোগ করব।
- স্ট্রিং
str। দৈর্ঘ্যstr.size()। X_Y(string str, int length, char X, char Y)ফাংশন স্ট্রিং, X, Y নিয়ে X দিয়ে শুরু Y দিয়ে শেষ সাবস্ট্রিং কাউন্ট রিটার্ন করে।- প্রাথমিক
count=0,x_total=0(X-এর কাউন্ট)। i=0থেকেlengthপর্যন্ত লুপে:str[i]==Xহলেx_total++।str[i]==Yহলেcount += x_total। যদি কোনো X না থাকে,x_total০ থাকবে।
countরিটার্ন করুন।
উদাহরণ
#include <bits/stdc++.h>
using namespace std;
int X_Y(string str, int length, char X, char Y) {
int count = 0;
int x_total = 0;
for (int i = 0; i < length; i++) {
if (str[i] == X) {
x_total++;
}
if (str[i] == Y) {
count = count + x_total;
}
}
return count;
}
int main() {
string str = "defaabbcchhkl";
int length = str.size();
char X = 'd';
char Y = 'a';
cout << "Count of substrings that starts with character X and ends with character Y are: " << X_Y(str, length, X, Y);
return 0;
}
আউটপুট
Count of substrings that starts with character X and ends with character Y are: 2