ধরুন, আমাদের একটি স্ট্রিং দেওয়া হয়েছে যেটি শুধুমাত্র দুটি অক্ষর a এবং b দিয়ে তৈরি। আমাদের খুঁজে বের করতে হবে স্ট্রিংটি anbn ফর্মের কিনা, বা অন্য কথায় এটিতে a এর n সংখ্যা এবং b এর n সংখ্যা রয়েছে। সত্য হলে, আমরা 1 ফেরত দিই অন্যথায় 0।
সুতরাং, যদি ইনপুট "aaaaaaaaaabbbbbbbbbb" এর মত হয়, তাহলে আউটপুটটি সত্য হবে।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- দৈর্ঘ্য :=ইনপুট_স্ট্রিং এর দৈর্ঘ্য
- আরম্ভ করার জন্য i :=0, যখন i <দৈর্ঘ্য, আপডেট (i 1 দ্বারা বাড়ান), &মাইনাস করুন
- যদি input_string[i] 'a' এর সমান না হয়, তাহলে −
- লুপ থেকে বেরিয়ে আসুন
- যদি input_string[i] 'a' এর সমান না হয়, তাহলে −
- যদি i * 2 দৈর্ঘ্যের সমান না হয়, তাহলে −
- মিথ্যে ফেরত দিন
- j শুরু করার জন্য :=i, যখন j <দৈর্ঘ্য, আপডেট করুন (j 1 দ্বারা বৃদ্ধি করুন), করুন −
- যদি input_string[j] 'b' এর সমান না হয়, তাহলে −
- মিথ্যে ফেরত দিন
- যদি input_string[j] 'b' এর সমান না হয়, তাহলে −
- সত্যে ফিরে আসুন
উদাহরণ (C++)
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
#include <bits/stdc++.h>
using namespace std;
bool solve(string input_string) {
int length = input_string.length();
int i;
for (i = 0; i < length; i++)
if (input_string[i] != 'a')
break;
if (i * 2 != length)
return false;
for (int j = i; j < length; j++)
if (input_string[j] != 'b')
return false;
return true;
}
int main() {
string input_string = "aaaaaaaaaaaabbbbbbbbbbbb";
cout << solve(input_string)<< endl;
return 0;
} ইনপুট
"aaaaaaaaaaaabbbbbbbbbbbb"
আউটপুট
1