【題目】
你和你的朋友,兩個人一起玩 Nim 遊戲:桌子上有一堆石頭,每次你們輪流拿掉 1 - 3 塊石頭。 拿掉最後一塊石頭的人就是獲勝者。你作爲先手。
你們是聰明人,每一步都是最優解。 編寫一個函數,來判斷你是否可以在給定石頭數量的情況下贏得遊戲。
示例:
輸入: 4
輸出: false
解釋: 如果堆中有 4 塊石頭,那麼你永遠不會贏得比賽;
因爲無論你拿走 1 塊、2 塊 還是 3 塊石頭,最後一塊石頭總是會被你的朋友拿走。
【分析】
- 根據題目中的提示,可以看出,在自己爲先手的情況下,如果石頭的個數是4的倍數,那麼自己永遠不可能贏
- 因此,判斷石頭的個數是否是4的倍數即可
【Python代碼】
class Solution:
def canWinNim(self, n: int) -> bool:
if n % 4 == 0:
return False
else:
return True
【結果】