Created
April 13, 2016 04:46
-
-
Save cangoal/f2d0c5eb3cd870dc41f04e004f1f38a5 to your computer and use it in GitHub Desktop.
LeetCode - Flip Game II
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // 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. | |
| // For example, given s = "++++", return true. The starting player can guarantee a win by flipping the middle "++" to become "+--+". | |
| // Follow up: | |
| // Derive your algorithm's runtime complexity. | |
| public boolean canWin(String s) { | |
| if(s == null || s.length() < 2) return false; | |
| for (int i = 0; i < s.length() - 1; i++) { | |
| if (s.startsWith("++", i)) { | |
| String str = s.substring(0, i) + "--" + s.substring(i + 2); | |
| if(!canWin(str)) return true; | |
| } | |
| } | |
| return false; | |
| } | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment