程序查找在Python中具有交替值所需的最小翻转次数
假设我们有一个二进制字符串s。现在假设我们可以使用s的前缀并将其移到后面。然后,找到需要翻转的最小字符数,这样就不会有相同值的连续字符。
因此,如果输入类似于s=“10010101111”,则输出将为2,因为我们可以使用前缀“10”,然后将其移回字符串为“01010111110”,然后将第3和第5位从右翻转到0(“01010101010”)。
示例
让我们看下面的实现以更好地理解-
class Solution:
def solve(self, S):
ans = N = len(S)
s = 0
for i in range(2 * N):
s += int(S[i % N]) ^ (i & 1)
if i >= N - 1:
ans = min(ans, s, N - s)
s -= int(S[(i - (N - 1)) % N]) ^ ((i - (N - 1)) & 1)
return ans
ob = Solution()
s = "10010101111"
print(ob.solve(s))输入值
"10010101111"输出结果
2
热门推荐
1 如何训练狗狗不叫
2 训练狗狗不叫
3 训练狗狗随行
4 怎么训练狗狗不叫
7 训练比熊狗狗教程
10 上海狗狗训练
11 怎么训练狗狗上厕所
12 训练狗狗趴下
13 狗狗服从训练
14 训练狗狗拒食
15 训练狗狗笑
16 训练狗狗大便
17 训练狗狗立
18 训练狗狗捡东西