Skip to content

Latest commit

 

History

History
36 lines (27 loc) · 1.04 KB

294. Flip-Game-II.md

File metadata and controls

36 lines (27 loc) · 1.04 KB

Description

You are playing the following Flip Game with your friend: Given a string that contains only these two characters: + and -, you and your friend take turns to flip two consecutive "++" into "--". The game ends when a person can no longer make a move and therefore the other person will be the winner.

Write a function to determine if the starting player can guarantee a win.

Example:

Input: s = "++++"
Output: true
Explanation: The starting player can guarantee a win by flipping the middle "++" to become "+--+".

Follow up: Derive your algorithm's runtime complexity.


python solution

class Solution:
    def canWin(self, s):
        """
        :type s: str
        :rtype: bool
        """
        for i in range(len(s) - 1):
            if s[i:i + 2] == "++":
                if not self.canWin(s[:i] + "--" + s[i + 2:]):
                    return True
        return False
  • 将每个“++”都尝试换成“—”,看对手能不能赢,如果对手不能赢,则我们就赢了。