3227. Vowels Game in a String

Leetcode link

题目简介

题目给我们一个字符串 s,要求我们配合 Alice 与 Bob 玩一场游戏

首先是 Alice:Alice 需要从字符串中,找出含有奇数个母音字母的子字符串,将其从原有字符串中删除

紧接着是 Bob:Bob 需要从剩下来的字符串中,找出含有偶数个母音字母的子字符串,将其从原有字符串中删除

然后回到 Alice……以此类推

最后谁无法进行下一步则判定其输了,Alice 赢的话返回 true,反之返回 false

解题思路

我们可以用贪婪的思想来思考这道题,分三种可能性:

  • 字符串中一个母音字符都没有:Bob 包赢(因为 Alice 第一步就没法走)
  • 字符串中有奇数个母音字符:Alice 包赢(因为她可以在一开始把整个字符串都删除,导致 Bob 完全没法走)
  • 字符串有偶数个母音字符:Alice 包赢(在第一句 Alice 删除后,字符串会变成奇数母音字符的字符串,此时 Bob 完成他的删除后,字符串仍然只会是含有奇数个母音字符的字符串,此时回到了第二种可能性,所以 Alice 包赢)

结论:除了字符串中一个母音字符都没有的情况下,Alice 包赢

Javascript

/**
 * @param {string} s
 * @return {boolean}
 */
var doesAliceWin = function(s) {
    return [...s].some(c=> ['a', 'e', 'i', 'o', 'u'].includes(c))
};

results matching ""

    No results matching ""