Watch 6 video solutions for Vowel-Consonant Score, a easy level problem involving String, Simulation. This walkthrough by Programming Live with Larry has 326 views views. Want to try solving it yourself? Practice on FleetCode or read the detailed text solution.
You are given a string s consisting of lowercase English letters, spaces, and digits.
Let v be the number of vowels in s and c be the number of consonants in s.
A vowel is one of the letters 'a', 'e', 'i', 'o', or 'u', while any other letter in the English alphabet is considered a consonant.
The score of the string s is defined as follows:
c > 0, the score = floor(v / c) where floor denotes rounding down to the nearest integer.score = 0.Return an integer denoting the score of the string.
Example 1:
Input: s = "cooear"
Output: 2
Explanation:
The string s = "cooear" contains v = 4 vowels ('o', 'o', 'e', 'a') and c = 2 consonants ('c', 'r').
The score is floor(v / c) = floor(4 / 2) = 2.
Example 2:
Input: s = "axeyizou"
Output: 1
Explanation:
The string s = "axeyizou" contains v = 5 vowels ('a', 'e', 'i', 'o', 'u') and c = 3 consonants ('x', 'y', 'z').
The score is floor(v / c) = floor(5 / 3) = 1.
Example 3:
Input: s = "au 123"
Output: 0
Explanation:
The string s = "au 123" contains no consonants (c = 0), so the score is 0.
Constraints:
1 <= s.length <= 100s consists of lowercase English letters, spaces and digits.Problem Overview: You are given a string and must compute its vowel–consonant score. Each character contributes to the score depending on whether it is a vowel or a consonant. The task is essentially a classification and counting problem over the characters of the string.
Approach 1: Brute Force Character Check (O(n * 5) time, O(1) space)
The most direct solution checks each character and compares it against every vowel individually (a, e, i, o, u). You iterate through the string one character at a time. For every character, run a small loop over the five vowels to determine if it is a vowel; otherwise treat it as a consonant and update the score accordingly. This works because the alphabet is small, but the repeated comparisons make the implementation slightly clunky. Time complexity is O(n * 5), which simplifies to O(n), and space complexity remains O(1) since only counters are stored.
Approach 2: Counting with Vowel Set (O(n) time, O(1) space)
A cleaner approach stores all vowels in a constant lookup structure such as a set or string. Iterate once over the input string and perform a membership check to determine if the current character is a vowel. If the character exists in the vowel set, update the score according to the vowel rule; otherwise treat it as a consonant. The key insight is that set membership is constant time, so each character is processed exactly once with a single lookup. This results in O(n) time and O(1) space because the vowel set contains only five characters.
This pattern appears frequently in string processing tasks where characters are classified into groups. It also demonstrates a simple simulation approach: iterate over the input and update a running state. Because the logic only requires counting and classification, the solution fits naturally into a counting pattern.
Recommended for interviews: The vowel-set counting approach is what interviewers expect. It shows you recognize constant-time lookups and clean iteration over a string. Mentioning the naive repeated comparison method can demonstrate baseline reasoning, but implementing the single-pass set-based solution shows stronger problem-solving discipline.
| Approach | Time | Space | When to Use |
|---|---|---|---|
| Brute Force Character Comparison | O(n * 5) | O(1) | Good for understanding the basic classification logic without extra data structures |
| Counting with Vowel Set | O(n) | O(1) | Best general solution for interview settings and production code |