Python程式:計算使所有x位於y之前所需的翻轉次數
假設我們有一個包含字母x和y的小寫字串s。現在考慮一個操作,我們將單個x更改為y或反之亦然。我們必須找到我們需要執行該操作的最小次數,以將所有x放在所有y之前。
因此,如果輸入類似於s = "yxyyyyxyxx",則輸出將為4。
為了解決這個問題,我們將遵循以下步驟:
y_left := 0
x_right := s中"x"的數量,res := s中"x"的數量
對於s中的每個專案,執行:
如果專案與"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
廣告