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