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