প্রদত্ত কাজটি হল প্রদত্ত স্ট্রিংটিতে দুটি বড় হাতের বর্ণমালার মধ্যে থাকা স্বতন্ত্র ছোট হাতের বর্ণমালার সর্বাধিক সংখ্যা খুঁজে বের করা৷
আসুন এখন বুঝতে পারি একটি উদাহরণ ব্যবহার করে আমাদের কী করতে হবে −
ইনপুট
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