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

C++-এ রিপিটেড স্ট্রিংয়ে একটি ক্যারেক্টারের অকারেন্স সংখ্যা গণনা


একটি স্ট্রিং str, একটি ক্যারেক্টার এবং একটি ধনাত্মক ইন্টিজার N দেওয়া আছে। স্ট্রিং str অনন্তকাল রিপিট হচ্ছে। লক্ষ্য হলো রিপিটেড স্ট্রিংয়ের প্রথম N ক্যারেক্টারে ch-এর কতবার অকারেন্স হয়েছে সেটি বের করা।

যদি str = "abac", ch = 'b' এবং N = 10 হয়।

প্রথম ১০ ক্যারেক্টারে "abacabacabacabac..."-এ b দুবার আসে।

নোট — str এবং ch একই কেসে রাখুন।

উদাহরণ ১

ইনপুট

str = "TPTTTT" ch = 'T' n = 12

আউটপুট

রিপিটেড স্ট্রিংয়ে একটি ক্যারেক্টারের অকারেন্স সংখ্যা: 10

ব্যাখ্যা

str-এ 'T'-র সংখ্যা ৫। str-এর দৈর্ঘ্য ৬। n=12 হলে str পুরোপুরি দুবার রিপিট হবে, তাই T-এর কাউন্ট ৬*২=১২।

উদাহরণ ২

ইনপুট

str = "sets" ch = 's' n = 15

আউটপুট

রিপিটেড স্ট্রিংয়ে একটি ক্যারেক্টারের অকারেন্স সংখ্যা: 7

ব্যাখ্যা

str-এ 's'-র সংখ্যা ২। str-এর দৈর্ঘ্য ৪। n=15 হলে str ৩ বার পুরোপুরি রিপিট হবে (প্রথম ১২ ক্যারেক্টার), সেটিতে s-এর কাউন্ট ৩*২=৬। বাকি ৩ ক্যারেক্টার (set)-এ s একবার। তাই মোট ৬+১=৭।

প্রয়োগ করা পদ্ধতি

এই পদ্ধতিতে প্রথমে str-এ ch-এর অকারেন্স কাউন্ট করা হয়। তারপর str-এর দৈর্ঘ্য N-দিয়ে ভাগ করা হয়। N ক্যারেক্টারে str-এর পূর্ণ রিপিটিশনের সংখ্যা পাওয়া যায় (N / length of str) দিয়ে। সেসব রিপিটিশনে ch-এর অকারেন্স হবে সিম্পল গুণফল। বাকি ক্যারেক্টার (N % length of str)-এ str-এ আবার ch কাউন্ট করে আগের কাউন্টে যোগ করা হয়।

  • স্ট্রিং str নিন।

  • n ইন্টিজার, ch ক্যারেক্টার এবং str-এর দৈর্ঘ্য ইন্টিজার হিসেবে নিন।

  • occurrences_char(string str, int length, int n, char ch) ফাংশনটি প্রথম n ক্যারেক্টারে ch-এর কাউন্ট রিটার্ন করে।

  • আরম্ভিক কাউন্ট ০ রাখুন।

  • for লুপ দিয়ে str-এ ch-এর অকারেন্স কাউন্ট করুন। প্রতিটি str[i]==ch হলে কাউন্ট বাড়ান।

  • রিপিটিশনের সংখ্যা occ = n / length।

  • এই রিপিটিশনে ch-এর অকারেন্স = count * occ।

  • বাকি n % length ক্যারেক্টারের জন্য str[i]==ch চেক করুন, হলে কাউন্ট বাড়ান।

  • কাউন্ট রিটার্ন করুন ফলাফল হিসেবে।

উদাহরণ কোড

#include <bits/stdc++.h> 
using namespace std; 

int occurrences_char(string str, int length, int n, char ch) {
    int count = 0; 
    
    for (int i = 0; i < length; i++) {
        if (str[i] == ch) {
            count++; 
        } 
    } 
    
    int occ = n / length; 
    count = count * occ; 
    
    for (int i = 0; i < n % length; i++) {
        if (str[i] == ch) {
            count++; 
        } 
    } 
    
    return count; 
} 

int main() { 
    string str = "TPTTTT"; 
    char ch = 'T'; 
    int n = 12; 
    int length = str.size(); 
    cout << "রিপিটেড স্ট্রিংয়ে একটি ক্যারেক্টারের অকারেন্স সংখ্যা: " << occurrences_char(str, length, n, ch); 
    return 0; 
}

আউটপুট

উপরোক্ত কোডটি রান করলে নিচের আউটপুটটি আসবে:

রিপিটেড স্ট্রিংয়ে একটি ক্যারেক্টারের অকারেন্স সংখ্যা: 10

  1. জাভাস্ক্রিপ্টে স্ট্রিং-এ একটি ক্যারেক্টারের ঘটনার সংখ্যা গণনার পদ্ধতি

  2. অ্যান্ড্রয়েডে স্ট্রিং-এ প্রতিটি ক্যারেক্টারের বhaviour গণনার পদ্ধতি

  3. পাইথনে স্ট্রিংয়ে নির্দিষ্ট ক্যারেক্টারের আকারেন্স কাউন্ট করা (Count occurrence of character in string)

  4. এক্সেলে স্ট্রিং ও রেঞ্জে ক্যারেক্টার বা ওয়ার্ড গণনা: দ্রুত ও সহজ পদ্ধতি