मान लीजिए कि हमारे पास एक लोअरकेस स्ट्रिंग s है जिसमें अक्षर x और y हैं। अब एक संक्रिया पर विचार करें जिसमें हम एकल x को y में बदलते हैं या इसके विपरीत। सभी x के आने को y से पहले सेट करने के लिए हमें उस ऑपरेशन को करने के लिए न्यूनतम संख्या का पता लगाना होगा।
इसलिए, यदि इनपुट s ="yxyyyyxyxx" जैसा है, तो आउटपुट 4 होगा।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
y_left :=0
-
x_right:=s में "x" की संख्या, res:=s में "x" की संख्या
-
प्रत्येक आइटम के लिए, करें
-
यदि आइटम "x" के समान है, तो
-
x_right :=x_right - 1
-
-
अन्यथा,
-
y_left :=y_left + 1
-
-
रेस :=न्यूनतम रेस और (y_left + x_right)
-
-
रिटर्न रेस
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
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