使用Python和二進位制字串製作燈泡開關程式
假設在一個房間裡,有n個燈泡,這些燈泡編號從0到n-1。我們必須將它們從左到右排成一行。最初,所有燈泡都是關閉的(0狀態)。我們必須獲得由給定目標陣列't'表示的配置,其中t[i]為'1'表示第i個燈泡開啟,'0'表示關閉。我們還有一個開關來翻轉燈泡的狀態。翻轉操作定義如下:
選擇任何燈泡索引i。
翻轉從索引i到索引n-1的每個燈泡。
我們必須找到形成目標所需的最小翻轉次數。
因此,如果輸入類似於t = "0101",則輸出將為3,如果我們從第二個燈泡開始,則下一個配置將為"0111",然後從第三個開始,它將為"0100",然後翻轉最後一個燈泡使其成為"0101"
為了解決這個問題,我們將遵循以下步驟:
count := 0
x := '0'
對於t中的每個i,執行
如果i與x不同,則
count := count + 1
x := i
返回count
讓我們看看下面的實現,以便更好地理解:
示例
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
廣告