আমাদের একটি অ্যালফাবেট স্ট্রিং দেওয়া আছে। কাজ হল স্ট্রিং-এ সর্বোচ্চ সান্মুখ্য পুনরাবৃত্তি হওয়া ক্যারেক্টারটি বের করা। উদাহরণ দিয়ে বুঝি।
উদাহরণ দিয়ে বোঝা যাক
ইনপুট - String[] = "abbbabbbbcdd"
আউটপুট - b
ব্যাখ্যা - উপরের স্ট্রিং-এ সবচেয়ে দীর্ঘ সান্মুখ্য শৃঙ্খলা ক্যারেক্টার 'b'-র। সান্মুখ্য b-এর কাউন্ট ৪।
ইনপুট - String[] = "aabbcdeeeeed"
আউটপুট - e
ব্যাখ্যা - উপরের স্ট্রিং-এ সবচেয়ে দীর্ঘ সান্মুখ্য শৃঙ্খলা ক্যারেক্টার 'e'-র। সান্মুখ্য e-এর কাউন্ট ৫। (মূল টেক্সটে b লেখা আছে যা ভুল।)
প্রোগ্রামে ব্যবহৃত পদ্ধতি
ক্যারেক্টার অ্যারে string1[] ব্যবহার করা হয়েছে অ্যালফাবেট স্ট্রিং সংরক্ষণের জন্য।
maxRepeating(char str[], int n) ফাংশন দুটি ইনপুট নেয়। স্ট্রিংটি এবং এর আকার। ফেরত দেয় স্ট্রিং-এ সর্বোচ্চ সান্মুখ্য রিপিটিশন শৃঙ্খলা বিশিষ্ট ক্যারেক্টার।
str[]-এ ১ম পজিশন থেকে শেষ পর্যন্ত ট্রাভার্স করুন।
যদি str[i] এবং পরেরটি str[i+1] একই হয় তবে count বাড়ান।
যদি वो কাউন্টটি সর্বোচ্চ হয়, তবে মান maxC-এ এবং ক্যারেক্টার repchar-এ সংরক্ষণ করুন।
ফাইনাল রেজাল্ট হিসেবে repchar ফেরত দিন।
C++ প্রোগ্রাম উদাহরণ
#include <iostream>
#include <iostream>
char maxRepeating(char str[], int n){
int count = 0;
char repchar = str[0];
int maxC = 1;
for (int i=0; i<n; i++){
if (str[i] == str[i+1] && i < n-1 )
maxC++;
else{
if (maxC > count){
count = maxC;
repchar = str[i];
}
maxC = 1;
}
}
return repchar;
}
int main(){
char string1[] = "aaabbaacccddef";
int N=14;
printf("Maximum Consecutive repeating character in string: %c",maxRepeating(string1,N));
return 0;
}
আউটপুট
Maximum Consecutive repeating character in string: a