LeetCode 1220, Hard. Topics: Dynamic Programming. View on LeetCode.
Generate this problem as a practice environment: tested reference solution, 16 parametrized pytest cases, and a playground notebook:
Problem
Given an integer n, your task is to count how many strings of length n can be formed under the following rules:
- Each character is a lower case vowel (
'a', 'e', 'i', 'o', 'u')
- Each vowel
'a' may only be followed by an 'e'.
- Each vowel
'e' may only be followed by an 'a' or an 'i'.
- Each vowel
'i' may not be followed by another 'i'.
- Each vowel
'o' may only be followed by an 'i' or a 'u'.
- Each vowel
'u' may only be followed by an 'a'.
Since the answer may be too large, return it modulo 10^9 + 7.
Examples
Constraints
Solution
Reference implementation from solution.py on GitHub, full suite in test_solution.py:
Complexity
NeetCode All. Last modified on September 7, 2026