294 Flip Game II
294. Flip Game II
1. Question
Input:
s = "++++"
Output:
true
Explanation:
The starting player can guarantee a win by flipping the middle "++" to become "+--+".class Solution {
public boolean canWin(String s) {
if (s == null || s.length() <= 1) {
return false;
}
Map<String, Boolean> cache = new HashMap();
return canWin(s, cache);
}
public boolean canWin(String s, Map<String, Boolean> cache) {
if (cache.containsKey(s)) {
return cache.get(s);
}
for (int i = 0; i < s.length(); i++) {
if (s.startsWith("++", i)) {
String t = s.substring(0, i) + "--" + s.substring(i + 2);
if (!canWin(t, cache)) {
cache.put(s, true);
return true;
}
}
}
cache.put(s, false);
return false;
}
}3. Time & Space Complexity
Last updated