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