在Python中计算所有x在y前面所需翻转次数的程序

在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)的最小值

  • 返回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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程