Leetcode3227. 字符串元音游戏

Every day a Leetcode

题目来源:3227. 字符串元音游戏

解法1:博弈论

分类讨论:

  • 如果 s 不包含任何元音,小红输。
  • 如果 s 包含奇数个元音,小红可以直接把整个 s 移除,小红赢。
  • 如果 s 包含正偶数个元音,由于偶数减奇数等于奇数,小红移除任意包含奇数个元音的子串后,剩余元音个数仍然为奇数。由于奇数减偶数还是奇数,所以无论小明怎么操作,仍然会剩下奇数个元音,此时小红可以直接把整个 s 移除,小红赢。

所以只要 s 包含元音,就返回 true,否则返回 false。

代码:

c 复制代码
/*
 * @lc app=leetcode.cn id=3227 lang=cpp
 *
 * [3227] 字符串元音游戏
 */

// @lc code=start
class Solution
{
public:
    bool doesAliceWin(string s)
    {
        for (char &c : s)
            if (isVowel(c))
                return true;
        return false;
    }
    // 辅函数
    bool isVowel(char &c)
    {
        return (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u');
    }
};
// @lc code=end

结果:

复杂度分析:

时间复杂度:O(n),其中 n 是字符串 s 的长度。

空间复杂度:O(1)。

相关推荐
Mr YiRan5 小时前
C++面向对象继承与操作符重载
开发语言·c++·算法
杜子不疼.5 小时前
UU云电脑深度测评:高性价比游戏云电脑,办公版本即将推出
服务器·游戏·电脑
额,不知道写啥。11 小时前
HAO的线段树(中(上))
数据结构·c++·算法
LYS_061811 小时前
C++学习(5)(函数 指针 引用)
java·c++·算法
紫陌涵光11 小时前
669. 修剪二叉搜索树
算法·leetcode
ADDDDDD_Trouvaille12 小时前
2026.2.21——OJ95-97题
c++·算法
Once_day12 小时前
C++之《程序员自我修养》读书总结(4)
c语言·c++·编译和链接
紫陌涵光13 小时前
108.将有序数组转换为二叉搜索树
数据结构·算法·leetcode
iAkuya13 小时前
(leetcode)力扣100 75前K个高频元素(堆)
java·算法·leetcode
tod11314 小时前
C++核心知识点全解析(二)
开发语言·c++·面试经验