मान लीजिए कि हमारे पास एक स्ट्रिंग है जिसमें केवल दो अक्षर ए और बी हैं, हमें बीएस की सभी घटनाओं से पहले की सभी घटनाओं को प्राप्त करने के लिए एस से हटाए जाने वाले अक्षरों की न्यूनतम संख्या ढूंढनी होगी।
इसलिए, यदि इनपुट S ="AABAABB" जैसा है, तो आउटपुट 1 होगा, क्योंकि हम AABBB प्राप्त करने के लिए अंतिम A को हटा सकते हैं
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:
-
a_right :="A" के s में आने की संख्या
-
b_बाएं :=0
-
उत्तर :=a_right
-
प्रत्येक अनुक्रमणिका i और वर्ण c in s के लिए, करें
-
यदि c "A" के समान है, तो
-
a_right:=a_right - 1
-
-
अन्यथा,
-
b_left :=b_left + 1
-
-
उत्तर:=न्यूनतम उत्तर और a_right + b_left
-
-
वापसी उत्तर
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें:
उदाहरण
class Solution: def solve(self, s): a_right = s.count("A") b_left = 0 ans = a_right for i, c in enumerate(s): if c == "A": a_right -= 1 else: b_left += 1 ans = min(ans, a_right + b_left) return ans ob = Solution() S = "AABAABB" print(ob.solve(S))
इनपुट
"AABAABB"
आउटपुट
1