LeetCode 294. 翻转游戏 II(记忆化递归)
发布日期:2021-07-01 03:30:03 浏览次数:2 分类:技术文章

本文共 838 字,大约阅读时间需要 2 分钟。

文章目录

1. 题目

你和朋友玩一个叫做「翻转游戏」的游戏,

游戏规则:给定一个只有 + 和 - 的字符串。
你和朋友轮流将 连续 的两个 "++" 反转成 "--"
当一方无法进行有效的翻转时便意味着游戏结束,则另一方获胜。

请你写出一个函数来判定起始玩家是否存在必胜的方案。

示例:输入: s = "++++"输出: true 解析: 起始玩家可将中间的 "++" 翻转变为 "+--+" 从而得胜。延伸:请推导你算法的时间复杂度。

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/flip-game-ii

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

class Solution {
unordered_map
m;public: bool canWin(string s) {
if(s.size() <= 1) return false; if(m.count(s)) return m[s]; string t; for(int i = 0; i < s.size()-1; ++i) {
if(s[i]=='+' && s[i+1]=='+') {
t = s; t[i]=t[i+1]='-'; if(!canWin(t)) {
m[s] = true; return true; } } } m[s] = false; return false; }};

40 ms 11.8 MB


我的CSDN

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

Michael阿明

转载地址:https://michael.blog.csdn.net/article/details/107571038 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:LeetCode 271. 字符串的编码与解码(4位16进制字符+字符串)
下一篇:LeetCode 1484. 克隆含随机指针的二叉树(哈希/递归)

发表评论

最新留言

很好
[***.229.124.182]2024年04月19日 10时57分37秒