কম্পিউটার টিউটোরিয়াল

C++ দিয়ে ইনপুট স্ট্রিংএ সর্বাধিকবার থাকা ক্যারেক্টার বের করা


এই সমস্যাতে, আমাদের একটি ইনপুট স্ট্রিং দেওয়া আছে যেটি শুধু লোয়ারকেস ক্যারেক্টার দিয়ে গঠিত। আমাদের কাজ হল ইনপুট স্ট্রিংএ সর্বাধিকবার থাকা ক্যারেক্টার বের করা।

যদি একাধিক ক্যারেক্টরের ফ্রিকোয়েন্সি একই হয়, তবে লেক্সিকোগ্রাফিক্যালি ছোটটি প্রিন্ট করতে হবে।

উদাহরণ দেখি:

ইনপুট

string = “programming”

আউটপুট

g

সমাধানের পদ্ধতি

সমাধানের জন্য ইনপুট স্ট্রিং সর্ট করে ট্রাভার্স করতে হবে যাতে সর্বাধিক অকারেন্স থাকা ক্যারেক্টার বের করা যায়। হ্যাশিং মেথড (হ্যাশ টেবিল মেথড) ব্যবহার করব। প্রতিটি ক্যারেক্টারকে ক্যারেক্টার অ্যারেতে ট্রাভার্স এবং হ্যাশ করা হচ্ছে।

সাধারণত হ্যাশ অ্যারের সাইজ ২৫৬ নেওয়া হয়। কিন্তু স্ট্রিং যদি শুধু ০ থেকে ১২৭ রেঞ্জের ক্যারেক্টার ধারণ করে, তবে ১২৮ সাইজের হ্যাশ টেবিল ব্যবহার করা যাবে।

অ্যালগরিদম

  • ইনপুট স্ট্রিং পড়ুন।

  • স্ট্রিংয়ের সর্বাধিক অকারেন্স থাকা ক্যারেক্টার বের করার ফাংশন তৈরি করুন।

  • প্রতিটি ক্যারেক্টারের কাউন্ট রাখার একটি অ্যারে তৈরি করুন এবং ০ দিয়ে ইনিশিয়ালাইজ করুন।

  • ইনপুট স্ট্রিং থেকে ক্যারেক্টার কাউন্ট অ্যারে তৈরি করুন।

  • ম্যাক্স কাউন্ট এবং রেজাল্ট ইনিশিয়ালাইজ করুন।

  • স্ট্রিং ট্রাভার্স করে প্রতিটি ক্যারেক্টারের কাউন্ট মেইনটেইন করুন।

  • শেষে সর্বাধিক কাউন্ট থাকা ক্যারেক্টার বের করে প্রিন্ট করুন।

উদাহরণ

#include <bits/stdc++.h> using namespace std; char findMaxOccuringChar(char str[]){    int freq[26] = { 0 };    int maxFreq = -1;    char maxFreqChar;    int len = strlen(str);    for (int i = 0; i < len; i++)     freq[str[i] - 'a']++;    for (int i = 0; i < 26; i++)     if (maxFreq < freq[i]) {       maxFreq = freq[i];       maxFreqChar = (char)(i + 'a');     }    return maxFreqChar; } int main(){    char str[] = "programming";    cout<<"Maximum occurring character of input string is "<<findMaxOccuringChar(str);    return 0; }

আউটপুট

Maximum occurring character of input string is g

  1. C++ দিয়ে Nটি রেঞ্জ থেকে সর্বাধিক বার থাকা ইন্টিজার বের করা

  2. অ্যারেতে প্রিফিক্সের ম্যাক্সিমাম অকারেন্স বের করা C++-এ

  3. স্ট্রিং থেকে একটি নির্দিষ্ট শব্দ বাদ দেওয়া C++-এ

  4. C++ দিয়ে একটি স্ট্রিংয়ের সাবস্ট্রিং-এর সংখ্যা বের করা