294. Flip Game II
Posted 我的名字叫周周
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了294. Flip Game II相关的知识,希望对你有一定的参考价值。
/* * 294. Flip Game II * 2016-7-2 by Mingyang * 这个题目我开始做的时候,还加了turn=1、-1来表示是哪个人走,还用了一个函数来表示什么时候不能走 * 其实都不用,这里如果没有可以走的了dfs的末尾会自动return false,另外,本轮是我走,我只要保证 * 下一轮return false就行了,我就return true,就是我走了以后,你下一轮无论怎么走,都不行 * 再次注意:题目的要求是determine if the starting player can guarantee a win!!!! * 不是能不能赢,是能不能保证必须赢!!!!这就是我刚开始搞错的地方 * 这里和其他传统的backtracking一点点不一样,没有刚开始的条件判断,因为只要走过一遍没发的都return false */ public boolean canWin(String s) { int n = s.length(); if(n<=1) return false; return dfs(s); } private boolean dfs(String s){ StringBuffer buffer = new StringBuffer(s); for(int i=0;i<s.length()-1;i++){ if(s.charAt(i)==s.charAt(i+1)&&s.charAt(i+1)==\'+\'){ buffer.setCharAt(i,\'-\'); buffer.setCharAt(i+1,\'-\'); if(!dfs(buffer.toString())) return true; buffer.setCharAt(i,\'+\'); buffer.setCharAt(i+1,\'+\'); } } return false; }
以上是关于294. Flip Game II的主要内容,如果未能解决你的问题,请参考以下文章
java 294. Flip Game II(#)。java
java 294. Flip Game II(#)。java
java 294. Flip Game II(#)。java