मान लीजिए कि हमारे पास एक स्ट्रिंग S है। S में S, 'x' और 'a' में दो प्रकार के वर्ण हैं। हमें यह गिनना होगा कि S में कुछ वर्णों को हटाने के बाद सबसे लंबी स्ट्रिंग कौन सी होगी ताकि यह अच्छी स्ट्रिंग बन जाए। एक स्ट्रिंग अच्छी है अगर इसकी लंबाई के आधे से अधिक अक्षर 'ए' से भरे हुए हैं।
इसलिए, यदि इनपुट S ="xaxxxxa" जैसा है, तो आउटपुट 3 होगा, क्योंकि यदि हम 4 'x' को हटाते हैं, तो स्ट्रिंग "xaa" होगी और यह एक अच्छी स्ट्रिंग है जिसकी लंबाई 3 है।
कदम
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
x := 2 * count the number of 'a' in S n := size of S return minimum of n and x
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
#include <bits/stdc++.h> using namespace std; int solve(string S) { int x = 2 * count(S.begin(), S.end(), 'a') - 1; int n = S.size(); return min(n, x); } int main() { string S = "xaxxxxa"; cout << solve(S) << endl; }
इनपुट
"xaxxxxa"
आउटपुट
3