在Python中查找交替二进制字符串所需的最小更改次数的程序
假设我们有一个二进制字符串s。 让我们考虑一个操作,我们可以翻转一个位。如果没有相邻的字符相同,则字符串s称为交替字符串。我们必须找到使s交替所需的最小操作次数。
因此,如果输入类似于s =“11100011”,那么输出将是3,因为如果我们在位置1,4和7翻转位,那么它将是“10101010”,然后都是交替的。
要解决这个问题,我们将按照以下步骤进行−
- 更改:= 0
-
even_1:= 0,even_0:= 0
-
odd_1:= 0,odd_0:= 0
-
对于i从0到s大小-1,执行以下操作
- 如果i是偶数,那么
- 如果s [i]与’1’相同,则
-
even_1:= even_1 + 1
-
否则,
-
even_0:= even_0 + 1
-
否则,
- 如果s [i]与’1’相同,则
-
odd_1:= odd_1 + 1
-
否则,
-
odd_0:= odd_0 + 1
- 如果i是偶数,那么
-
如果(even_1 + odd_0)>(even_0 + odd_1),那么
- 更改:= even_0 + odd_1
- 否则,
- 更改:= even_1 + odd_0
- 返回更改
例(Python)
让我们看下面的实现,以便更好地理解 &minnus;
输入
##