DDSA Solutions

3227. Vowels Game in a String

Time: O(n)
Space: O(1)
Advertisement

Approach

Count vowels; Alice wins if count is odd or nonzero (she can always take advantage).

Key Techniques

Math

Math problems test number theory, combinatorics, and modular arithmetic. Common tools: GCD/LCM (Euclidean algorithm), prime sieve, modular inverse (Fermat's little theorem), digit manipulation, and bit tricks. Overflow is a key concern in C# — use long when products may exceed 2³¹.

Game Theory

Combinatorial game theory analyzes who wins under optimal play. Sprague-Grundy theorem assigns "nim-values" to game states. For simple games, look for patterns in small cases. Minimax (with alpha-beta pruning) solves general two-player zero-sum games.

String

String problems range from simple character counting to complex pattern matching. Common approaches include two pointers, sliding window, prefix hashing, and the KMP algorithm. In C#, strings are immutable — use StringBuilder for efficient concatenation inside loops.

3227.cs
C#
// Approach: Count vowels; Alice wins if count is odd or nonzero (she can always take advantage).
// Time: O(n) Space: O(1)

public class Solution
{
    public bool DoesAliceWin(string s)
    {
        // Define vowels as a constant string
        string vowels = "aeiou";

        // Iterate through each character in the input string
        for (int i = 0; i < s.Length; i++)
        {
            char currentChar = s[i];

            // Check if the current character is a vowel
            if (vowels.IndexOf(currentChar) != -1)
                // If a vowel is found, Alice wins
                return true;
        }

        // No vowels found, Alice does not win
        return false;
    }
}
Advertisement
Was this solution helpful?