ধরুন আমাদের দৈর্ঘ্য n এর একটি স্ট্রিং আছে। এতে শুধুমাত্র বড় হাতের অক্ষর রয়েছে। আমাদের সাবস্ট্রিংগুলির সংখ্যা খুঁজে বের করতে হবে যার অক্ষর বর্ণানুক্রমিকভাবে ঘটছে। সাবস্ট্রিং এর ন্যূনতম আকার হবে 2। তাই যদি স্ট্রিংটি হয়:“REFJHLMNBV”, এবং সাবস্ট্রিং সংখ্যা 2 হয়, তারা হল “EF” এবং “MN”।
সুতরাং এটি সমাধান করার জন্য, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- str[i] + 1 str[i+1] এর মতোই কিনা তা পরীক্ষা করুন, যদি তাই হয়, তাহলে ফলাফল 1 দ্বারা বাড়ান, এবং স্ট্রিংটিকে পরবর্তী অক্ষর পর্যন্ত পুনরাবৃত্তি করুন যা বর্ণানুক্রমের বাইরে, অন্যথায় চালিয়ে যান।<
উদাহরণ
#include<iostream>
using namespace std;
int countSubstr(string main_str) {
int res = 0;
int n = main_str.size();
for (int i = 0; i < n - 1; i++) {
if (main_str[i] + 1 == main_str[i + 1]) {
res++;
while (main_str[i] + 1 == main_str[i + 1]) {
i++;
}
}
}
return res;
}
int main() {
string str = "REFJHLMNBV";
cout << "Number of substrings: " << countSubstr(str);
} আউটপুট
Number of substrings: 2