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

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

এই সমস্যায়, আমাদের একটি ক্যারেক্টার অ্যারে দেওয়া আছে সব লোয়ারকেসে। আমাদের কাজ হল অ্যারেতে প্রিফিক্সের ম্যাক্সিমাম অকারেন্স বের করা।

আমাদের নন-এমপ্টি প্রিফিক্সগুলোর অকারেন্স কাউন্ট করতে হবে যেগুলোর অকারেন্স কাউন্ট সর্বোচ্চ।

উদাহরণ

সমস্যাটি বুঝতে একটি উদাহরণ নিই:

ইনপুট : string = "xyyzkxyyzk"
আউটপুট : 2

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

লজিকটি হল ভাবতে যে অ্যারেতার প্রিফিক্সটি অবশ্যই স্ট্রিংর প্রথম ক্যারেক্টার ধারণ করবে এবং সেটির রিপিটিং অকারেন্সও। এবং একটি স্ট্রিংর প্রথম ক্যারেক্টারের সবচেয়ে কম ক্যারেক্টারসহ একটি প্রিফিক্স। তাই সর্বোচ্চ অকারেন্স থাকা প্রিফিক্স অবশ্যই স্ট্রিংর প্রথম ক্যারেক্টার হবে। তাই কাজটি এখন স্ট্রিংর প্রথম ক্যারেক্টারের কাউন্ট বের করাটায় সিমেটড হয়েছে।

অ্যালগরিদম

  • লোয়ারকেস আলফাবেটের একটি স্ট্রিং পড়ুন।

  • প্রয়োজনীয় প্রিফিক্সের কাউন্ট রিটার্ন করার একটি ফাংশন তৈরি করুন।

  • count=0 ইনিশিয়ালাইজ করুন।

  • স্ট্রিংর প্রথম ক্যারেক্টারটি ফ্রিকোয়েন্সি বের করুন।

  • স্ট্রিংর প্রথম ক্যারেক্টারটির ফ্রিকোয়েন্সি প্রিন্ট করুন যা অবশেষে স্ট্রিংর প্রিফিক্সের ম্যাক্সিমাম অকারেন্স হবে।

উদাহরণ প্রোগ্রাম

আমাদের সমাধানের কাজকাণ্ড ব্যাখ্যা করার প্রোগ্রাম:

#include <iostream>
using namespace std;

int findPrefixOccurence(string str) {
    char chars = str[0];
    int countOccrence = 0;
    for (int i = 0; i < str.length(); i++) {
        if (str[i] == chars)
            countOccrence++;
    }
    return countOccrence;
}

int main() {
    string str = "xyyzxxyyzxyxx";
    cout << "The maximum occurence of prefix in the array is " << findPrefixOccurence(str);
    return 0;
}

আউটপুট

The maximum occurence of prefix in the array is 6
  1. সি++ প্রোগ্রাম: 넘পাই (NumPy) অ্যারেতে প্রতিটি স্ট্রিং উপাদানের দৈর্ঘ্য নির্ণয়

  2. C++-এ সিকোয়েন্স সেটে লংগেস্ট কমন প্রিফিক্স (Longest Prefix Matching) খুঁজে বের করা

  3. C++-এ স্ট্রিংকে ক্যারেক্টার অ্যারে রূপান্তর: তিনটি পদ্ধতি

  4. C++-এ স্ট্রিং অ্যারে: string কীওয়ার্ড ব্যবহার