मान लीजिए, हमें एक स्ट्रिंग दी गई है जो केवल दो अक्षरों a और b से बनी है। हमें यह पता लगाना है कि क्या स्ट्रिंग anbn रूप की है, या दूसरे शब्दों में इसमें n संख्या में a के बाद n संख्या में b हैं। यदि सत्य, तो हम 1 वापस करते हैं अन्यथा 0।
इसलिए, यदि इनपुट "aaaaaaaaaaaabbbbbbbbbbbb" जैसा है, तो आउटपुट सत्य होगा।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:
- length := इनपुट_स्ट्रिंग की लंबाई
- i := 0 से शुरू करें, जब i < length, i बढ़ाते हुए:
- यदि input_string[i] 'a' के समान नहीं है, तो: लूप से बाहर आएं
- यदि i * 2 length के समान नहीं है, तो: असत्य वापस करें
- j := i से शुरू करें, जब j < length, j बढ़ाते हुए:
- यदि 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