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