在Python中计算所有x在y前面所需翻转次数的程序
假设我们有一个小写字符串s,其中包含字母x和y。 现在考虑一种操作,即将单个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)的最小值
- 如果项与“x”相同,则
-
返回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