1 Star 1 Fork 0

laodasbch/Leetcode-Complete-Guide

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
294.txt 1.23 KB
一键复制 编辑 原始数据 按行查看 历史
JunB(66哥) 提交于 5年前 . Create 294.txt
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.
class Solution {
public:
unordered_map<string,bool>hash;
bool canWin(string s) {
return dfs(s,0);
}
bool dfs(string &s,int turn){
string state=s+","+to_string(turn);
if(hash.find(state)!=hash.end())return hash[state];
int next=1;
if(turn==1)next=0;
bool res=false;
for(int i=1;i<s.size();i++){
if(s[i]==s[i-1]&&s[i]=='+'){
s[i]='-';s[i-1]='-';
bool val=dfs(s,next);
if(val==false){
res=true;
}
s[i]='+';s[i-1]='+';
}
}
hash[state]=res;
return res;
}
};
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/laodasbch/Leetcode-Complete-Guide.git
git@gitee.com:laodasbch/Leetcode-Complete-Guide.git
laodasbch
Leetcode-Complete-Guide
Leetcode-Complete-Guide
master

搜索帮助