ধরুন আমাদের দৈর্ঘ্য 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