使用 Python 使用二进制字符串制作灯泡切换器的程序

假设我们在一个房间里有 n 个灯泡,这些灯泡的编号从 0 到 n-1。我们必须将它们从左到右排列成一排。最初,所有灯泡都关闭(0 状态)。我们必须得到由给定目标数组 't' 表示的配置,其中 t[i] 如果第 i 个灯泡打开,则为 '1',如果关闭,则为 '0'。我们还有一个开关来翻转灯泡的状态。翻转操作定义如下 -

  • 选择任何灯泡指数 i。

  • 将每个灯泡从索引 i 翻转到索引 n - 1。

我们必须找到形成目标所需的最少翻转次数。

所以,如果输入像t =“0101”,那么输出将是3,如果我们从第二个灯泡开始,那么下一个配置将是“0111”,然后从第三个开始,它将是“0100”,然后翻转最后灯泡使其成为“0101”

为了解决这个问题,我们将按照以下步骤操作 -

  • 计数:= 0

  • x := '0'

  • 对于每个 i 在 t,做

    • 计数 := 计数 + 1

    • x := i

    • 如果 i 与 x 不同,则

    • 返回计数

    让我们看看以下实现以获得更好的理解 -

    示例

    def solve(t):
       count = 0
       x = '0'
       for i in t:
          if i != x:
             count += 1
             x = i
       return count
    t = "0101"
    print(solve(t))

    输入

    "0101"
    输出结果
    3

    猜你喜欢