मान लीजिए कि हमारे पास एक स्ट्रिंग है जिसमें केवल दो अक्षर ए और बी हैं, हमें बीएस की सभी घटनाओं से पहले की सभी घटनाओं को प्राप्त करने के लिए एस से हटाए जाने वाले अक्षरों की न्यूनतम संख्या ढूंढनी होगी।
इसलिए, यदि इनपुट 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