এই সমস্যাতে, আমাদের একটি স্ট্রিং str দেওয়া আছে। আমাদের কাজ হল C++-এ সেকেন্ড মোস্ট ফ্রিকোয়েন্ট ক্যারেক্টার (দ্বিতীয় সবচেয়ে বেশি বার আসা ক্যারেক্টার) বের করার প্রোগ্রাম লিখা।
উদাহরণ:
ইনপুট
str = "abaacabcba"
আউটপুট
'b'
সমাধানের পদ্ধতি
স্ট্রিং-এ দ্বিতীয় সবচেয়ে বেশি ফ্রিকোয়েন্ট ক্যারেক্টার বের করতে, আমাদের একটি কাউন্ট অ্যারে charFreq দরকার যা প্রতিটি ক্যারেক্টারের ফ্রিকোয়েন্সি সংরক্ষণ করবে। তারপর এই অ্যারে থেকে max এবং secondMax ফ্রিকোয়েন্সি বিশিষ্ট ক্যারেক্টার বের করে দ্বিতীয়টি দেখাব।
প্রোগ্রাম
#include <iostream>
#include <string.h>
using namespace std;
char findSecFreqChar(string str) {
int charFreq[256] = {0};
for (int i = 0; i < str.length(); i++)
(charFreq[str[i]])++;
int maxFreq = 0, secFreq = 0;
for (int i = 0; i < 256; i++) {
if (charFreq[i] > charFreq[maxFreq]) {
secFreq = maxFreq;
maxFreq = i;
}
else if (charFreq[i] > charFreq[secFreq] && charFreq[i] != charFreq[maxFreq])
secFreq = i;
}
return secFreq;
}
int main() {
string str = "tutorialspoint";
char secFreqChar = findSecFreqChar(str);
cout << "Second most frequent character of the string is " << secFreqChar;
return 0;
}
আউটপুট
Second most frequent character of the string is i