मान लीजिए कि हमारे पास एक लोअरकेस स्ट्रिंग 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