শুধুমাত্র ছোট হাতের বর্ণমালা এবং একটি পূর্ণসংখ্যা মান k সম্বলিত একটি স্ট্রিং str[] দেওয়া হয়েছে। লক্ষ্য হল str এর সম্ভাব্য সাবস্ট্রিংগুলির সংখ্যা খুঁজে বের করা যাতে ঠিক k স্বতন্ত্র উপাদান রয়েছে।
উদাহরণস্বরূপ
ইনপুট
str=”pqr” k=2
আউটপুট
ঠিক k স্বতন্ত্র অক্ষর সহ সাবস্ট্রিংগুলির সংখ্যা হল:2
ব্যাখ্যা
যে সাবস্ট্রিংগুলিতে ঠিক ২টি স্বতন্ত্র উপাদান রয়েছে তা হল:“pq”, “qr”।
ইনপুট
str=”stristr” k=4
আউটপুট
ঠিক k স্বতন্ত্র অক্ষর সহ সাবস্ট্রিংগুলির সংখ্যা হল:10
ব্যাখ্যা
ঠিক 2টি স্বতন্ত্র উপাদান সম্বলিত সাবস্ট্রিং হল:“stri”, “tris”, “rist”, “istr”, “stris”, “trist”, “ristr”, “strist”, “tristr”, “stristr” ”।নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি −
এই পদ্ধতিতে আমরা স্ট্রিং str এর ভিতরে ইংরেজি বর্ণমালার ফ্রিকোয়েন্সি সংরক্ষণ করতে একটি অ্যারে অ্যারে [26] করব এখন লুপের জন্য দুটি ব্যবহার করে স্ট্র ট্র্যাভার্স করুন, যদি সাবস্ট্রিং-এর জন্য, প্রতিটি অক্ষর একবার ঘটছে তাহলে অনন্য অক্ষরের সংখ্যা বৃদ্ধি করুন, সেই সাবস্ট্রিংয়ের শেষে যদি সেই সংখ্যা k এর সমান হয় তবে প্রদত্ত শর্তগুলি অনুসরণ করে সাবস্ট্রিংগুলির সংখ্যা বৃদ্ধি করুন।
-
ইনপুট হিসাবে একটি স্ট্রিং স্ট্র নিন।
-
ধনাত্মক মান সহ একটি পূর্ণসংখ্যা k নিন।
-
ফাংশন substring_k(string str, int length, int k) str এবং k নেয় এবং ঠিক k স্বতন্ত্র অক্ষর সহ সাবস্ট্রিং সংখ্যার গণনা প্রদান করে।
-
0 হিসাবে প্রাথমিক গণনা নিন।
-
ফ্রিকোয়েন্সি অ্যারে অ্যারে নিন[26]।
-
i=0 থেকে i
লুপের জন্য দুটি ব্যবহার করে ট্রাভার্স স্ট্র। -
str[i থেকে j] সাবস্ট্রিং-এ অনন্য উপাদানের গণনা হিসাবে temp নিন।
-
যদি অ্যারে [str[j] − 'a']==0 হয় তাহলে এই সাবস্ট্রিং-এ এই অক্ষর str[j] প্রথমবার এসেছে। তাই তাপমাত্রা বৃদ্ধি করুন।
-
এখন অ্যারে[str[j] − 'a']++ ব্যবহার করে বর্তমান অক্ষরের সংখ্যা বৃদ্ধি করুন।
-
যদি তাপমাত্রা k এর সমান হয় তবে বৃদ্ধির সংখ্যা।
-
যদি তাপমাত্রা k-এর বেশি হয় তবে আরও যাতায়াত বন্ধ করুন এবং লুপটি ভেঙে দিন।
-
সমস্ত লুপের শেষে ফলাফল হিসাবে গণনা ফিরে আসে।
উদাহরণ
#includeনেমস্পেস ব্যবহার করে std;int substring_k(string str, int length, int k){ int count =0; int অ্যারে [26]; জন্য (int i =0; i <দৈর্ঘ্য; i++){ int temp =0; মেমসেট(অ্যারে, 0, সাইজফ(অ্যারে)); জন্য (int j =i; j k){ break; } } } রিটার্ন গণনা;} int main(){ string str ="abc"; int length =str.length(); int k =1; cout<<"ঠিক k স্বতন্ত্র অক্ষর সহ সাবস্ট্রিংগুলির সংখ্যা হল:"< আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেঠিক k স্বতন্ত্র অক্ষর সহ সাবস্ট্রিংগুলির সংখ্যা হল:3