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
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP