मान लीजिए हमारे पास x और y अक्षरों वाली एक लोअरकेस स्ट्रिंग s है। अब एक ऑपरेशन पर विचार करें जिसमें हम एक x को y में या इसके विपरीत बदलते हैं। हमें उस ऑपरेशन को करने की न्यूनतम संख्या ज्ञात करनी है जिससे सभी x, सभी y से पहले आ जाएं।
इसलिए, यदि इनपुट s = "yxyyyyxyxx" जैसा है, तो आउटपुट 4 होगा।
हल करने के चरण
y_left := 0
x_right := s में "x" की संख्या, res := s में "x" की संख्या
s में प्रत्येक item के लिए, करें
यदि item, "x" के समान है, तो x_right := x_right - 1
अन्यथा, y_left := y_left + 1
res := res और (y_left + x_right) का न्यूनतम
res लौटाएं
उदाहरण
class Solution:
def solve(self, s):
y_left = 0
x_right = res = s.count("x")
for item in s:
if item == "x":
x_right -= 1
else:
y_left += 1
res = min(res, y_left + x_right)
return res
ob = Solution()
s = "yxyyyyxyxx"
print(ob.solve(s))
इनपुट
"yxyyyyxyxx"
आउटपुट
4