Back to all solutions

#3227 - Vowels Game in a String

Problem Description

Alice and Bob are playing a game on a string.

You are given a string s, Alice and Bob will take turns playing the following game where Alice starts first:

  • On Alice's turn, she has to remove any non-empty substring from s that contains an odd number of vowels.
  • On Bob's turn, he has to remove any non-empty substring from s that contains an even number of vowels.

The first player who cannot make a move on their turn loses the game. We assume that both Alice and Bob play optimally.

Return true if Alice wins the game, and false otherwise.

The English vowels are: a, e, i, o, and u.

Solution

/**
 * @param {string} s
 * @return {boolean}
 */
var doesAliceWin = function(s) {
  const vowels = new Set(['a', 'e', 'i', 'o', 'u']);
  for (const char of s) {
    if (vowels.has(char)) {
      return true;
    }
  }
  return false;
};