আমাদের একটি স্ট্রিং দেওয়া আছে, যেমন str, এবং আমাদের কাজ হল স্ট্রিংতে থাকা সেই অক্ষরগুলির সংখ্যা গণনা করা যাদের একই প্রতিবেশী রয়েছে এবং এতে স্ট্রিংয়ে একটি অক্ষরের বাম ও ডান দুপাশের প্রতিবেশী অন্তর্ভুক্ত। এছাড়া, এই পরিস্থিতিতে স্ট্রিংয়ের প্রথম এবং শেষ অক্ষর সবসময় গণ্য হবে কারণ তাদের কেবল একটি প্রতিবেশী থাকে।
উদাহরণ
ইনপুট − string str = "poiot" আউটপুট − গণনা 3
ব্যাখ্যা − দেওয়া স্ট্রিংতে p, t এবং i অক্ষরগুলির একই প্রতিবেশী রয়েছে তাই গণনা 3 হবে।
ইনপুট − string str = "nitihig" আউটপুট − গণনা 4
ব্যাখ্যা − দেওয়া স্ট্রিংতে n, t, h এবং g অক্ষরগুলির একই প্রতিবেশী রয়েছে তাই গণনা 4 হবে।
প্রোগ্রামে ব্যবহৃত পদ্ধতি
- স্ট্রিং ইনপুট নিয়ে
strভেরিয়েবলে সংরক্ষণ করুন length()ফাংশন দিয়ে স্ট্রিং দৈর্ঘ্য গণনা করুন- যদি স্ট্রিং দৈর্ঘ্য ≤ 2 হয় তবে স্ট্রিং দৈর্ঘ্য হিসেবে গণনা ফেরত দিন কারণ সবই গণ্য হবে
- যদি স্ট্রিং দৈর্ঘ্য > 2 হয়,
count2 দিয়ে আরম্ভ করুন - এখন
i = 1থেকেi < length-1পর্যন্ত লুপ শুরু করুন - লুপের ভিতরে, যদি
str[i-1] == str[i+1]হয় তবেcount1 বৃদ্ধি করুন - মোট
countমান ফেরত দিন - ফলাফল প্রিন্ট করুন
উদাহরণ কোড
#include <iostream>
using namespace std;
// অক্ষর গণনা করার ফাংশন
int countChar(string st) {
int size = st.length();
if (size <= 2) {
return size;
}
int result = 2;
// স্ট্রিং ট্রাভার্স করুন
for (int i = 1; i < size - 1; i++) {
// পূর্ববর্তী এবং পরবর্তী অক্ষর একই হলে গণনা বৃদ্ধি
if (st[i - 1] == st[i + 1]) {
result++;
}
}
// ফলাফল ফেরত দিন
return result;
}
int main() {
string st = "poiot";
cout << "count is " << countChar(st);
return 0;
}
আউটপুট
যদি আমরা উপরের কোডটি রান করি তবে নিচের আউটপুট পাব
count is 3