backtracking 每次翻两个 然后向下递归 但是注意要取下次递归的返回值 因为假如对手一定输了 那么自己才一定赢了
public class Solution {
public boolean canWin(String s) {
for ( int i = 0; i < s.length() - 1; i ++ ){
if ( s.charAt ( i ) == '+' && s.charAt( i + 1 ) == '+' ){
StringBuilder sb = new StringBuilder ( s );
sb.setCharAt ( i , '-');
sb.setCharAt ( i + 1 ,'-');
if ( !canWin ( sb.toString() ) )
return true;
}
}
return false;
}
}

本文介绍了一个使用回溯算法解决两人博弈问题的例子。通过递归地翻转字符串中的两个相邻‘+’符号来模拟游戏过程,判断当前状态是否会导致对手必败。
784

被折叠的 条评论
为什么被折叠?



