প্রদত্ত কাজটি হল প্রদত্ত স্ট্রিংটিতে দুটি বড় হাতের বর্ণমালার মধ্যে থাকা স্বতন্ত্র ছোট হাতের বর্ণমালার সর্বাধিক সংখ্যা খুঁজে বের করা৷
আসুন এখন বুঝতে পারি একটি উদাহরণ ব্যবহার করে আমাদের কী করতে হবে −
ইনপুট
str = “JKyubDoorG”
আউটপুট
3
ব্যাখ্যা
"yub" দুটি বড় হাতের বর্ণমালা K এবং D এর মধ্যে উপস্থিত যা গণনা 3 করে।
"oor" দুটি বড় হাতের বর্ণমালা D এবং G এর মধ্যেও উপস্থিত রয়েছে যা গণনা 2কে 'o' একটি পুনরাবৃত্তিকারী বর্ণমালা হিসাবে তৈরি করে এবং আমরা স্বতন্ত্র বর্ণমালা খুঁজছি।
অতএব, আউটপুট হল 3।
ইনপুট
str = “ABcefsTaRpaep”
আউটপুট
4
নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি
-
ফাংশনে Max() ইনিশিয়ালাইজ int size =s.length() প্রদত্ত স্ট্রিংটির দৈর্ঘ্য সংরক্ষণ করতে।
-
i =0 থেকে i
='A' &&s[i] <='Z')। যদি তাই হয় তাহলে I বৃদ্ধি করুন এবং বিরতি; -
int উত্তর শুরু করুন =0 চূড়ান্ত উত্তর সংরক্ষণ করতে এবং আরেকটি অ্যারে cnt[26] ={0}.
-
i =0 থেকে i
='A' &&s[i] <='Z') বর্তমান বর্ণমালা বড় আকারে আছে কিনা তা পরীক্ষা করুন। যদি তাই হয় তাহলে int CurrMax আরম্ভ করুন =0 বর্তমান সর্বোচ্চ মান সংরক্ষণ করতে। -
i =0 থেকে i<26 পর্যন্ত লুপ করুন এবং পরীক্ষা করুন যদি (cnt[i]> 0)। যদি তাই হয়, তাহলে CurrMax বৃদ্ধি করুন।
-
লুপের বাইরে, উত্তর আপডেট করুন ans =max(ans, CurrMax) বসিয়ে; এবং memset(cnt, 0, sizeof(cnt)) ব্যবহার করে cnt[] অ্যারে রিসেট করুন;
-
উপরের if() স্টেটমেন্ট বন্ধ করুন এবং চেক করুন যদি (s[i]>='a' &&s[i] <='z')। যদি তাই হয় তাহলে cnt[s[i] - 'a'] বৃদ্ধি করুন।
-
জন্য লুপ বন্ধ করুন এবং উত্তর দিন।
উদাহরণ
#include <bits/stdc++.h> using namespace std; int Max(string s){ int size = s.length(); // Ignore the lowercase alphabets in beginning for (int i = 0; i < size; i++){ if (s[i] >= 'A' && s[i] <= 'Z'){ i++; break; } } int ans = 0; int cnt[26] = { 0 }; for (int i = 0; i < size; i++) { // If alphabet is uppercase, if (s[i] >= 'A' && s[i] <= 'Z'){ //Counting all lower case //distinct alphabets int CurrMax = 0; for (int i = 0; i < 26; i++){ if (cnt[i] > 0) CurrMax++; } // Update ans ans = max(ans, CurrMax); // Reset count array memset(cnt, 0, sizeof(cnt)); } // If alphabet is lowercase if (s[i] >= 'a' && s[i] <= 'z') cnt[s[i] - 'a']++; } return ans; } // Driver function int main(){ string str = "JKyubDoorG"; cout << Max(str); return 0; }
আউটপুট
3