একটি স্ট্রিং 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