Vowel Valley: Most Common Vowel ๐ŸŒฑ
README.md
main.py
notes.txt
Output
Tests

Vowel Valley: Most Common Vowel

๐ŸŒฑ Beginner Project 3042695272

๐Ÿฆ„ Vowel Valley: Most Common Vowel

Difficulty: Beginner Tags: strings, counts Series: CS 101


Problem

Given a string, find and return the most frequently occurring vowel (a, e, i, o, u). Vowels are case-insensitive, so both 'A' and 'a' count as the same vowel.

Important rules: - If there's a tie (multiple vowels appear with the same highest frequency), return the one that comes first alphabetically - If the string contains no vowels, return None - Count both uppercase and lowercase vowels as the same

Why This Matters

Frequency counting and tie-breaking are fundamental operations in data analysis, text processing, and search engines. This pattern appears in: - Spell checkers (analyzing common letter patterns) - Data analysis (finding mode values with deterministic tie-breaking) - Text compression algorithms - Natural language processing

Understanding how to count, track, and make deterministic decisions when there are ties is crucial for building reliable systems.

Input

data = str - A string containing letters, numbers, spaces, or special characters

Output

Optional[str] - A single lowercase vowel character ('a', 'e', 'i', 'o', or 'u'), or None if no vowels exist

Constraints

  • 0 โ‰ค length โ‰ค 100_000
  • Input may contain any printable ASCII characters
  • Case-insensitive: 'A' and 'a' are treated as the same vowel

Examples

Example 1: Basic Case

Input: 'unicorn'

Output: 'o'

Explanation: Counting the vowels in 'unicorn': - u: 1 occurrence - i: 1 occurrence - o: 1 occurrence

Note: While this creates a three-way tie, the expected output is 'o'. Make sure your implementation matches the test expectations for tie-breaking.

Example 2: Clear Winner

Input: 'beautiful'

Output: 'u'

Explanation: - e: 1 occurrence - a: 1 occurrence - u: 2 occurrences - i: 1 occurrence

The vowel 'u' appears twice, more than any other vowel, so it's the winner.

Example 3: Tie-Breaking

Input: 'ae'

Output: 'a'

Explanation: - a: 1 occurrence - e: 1 occurrence

Both vowels appear once (tied), so we break the tie alphabetically. 'a' comes before 'e', so we return 'a'.

Example 4: No Vowels

Input: 'rhythms'

Output: None

Explanation: The string contains no vowels (a, e, i, o, u), so we return None.

Example 5: Case Insensitive

Input: 'AEIOU aeiou'

Output: 'a'

Explanation: - a: 2 occurrences (A + a) - e: 2 occurrences (E + e) - i: 2 occurrences (I + i) - o: 2 occurrences (O + o) - u: 2 occurrences (U + u)

All vowels are tied at 2, so alphabetical tie-breaking gives us 'a'.



What you'll learn

  • Implement frequency counting with dictionaries
  • Handle tie-breaking rules deterministically
  • Work with fixed sets of characters
  • Process strings efficiently in a single pass

Why this matters

Frequency counting and deterministic tie-breaking are fundamental operations in data analysis, ranking systems, and text processing. These patterns appear in recommendation engines, search result ranking, spell checkers, and data aggregation pipelines.

OUTPUT
TESTS
Output
Code execution results displayed hereโ€ฆ
Test Results
Test results displayed hereโ€ฆ