101 Logo
onenoughtone

Problem Statement

Count Vowels Permutation

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

Example 1:

Input: n = 1
Output: 5
Explanation: All possible strings are: 'a', 'e', 'i', 'o', 'u'.

Example 2:

Input: n = 2
Output: 10
Explanation: All possible strings are: 'ae', 'ea', 'ei', 'ia', 'ie', 'io', 'iu', 'oi', 'ou', 'ua'.

Example 3:

Input: n = 5
Output: 68
Explanation: This is the number of possible strings of length 5 that can be formed under the given rules.

Constraints

  • 1 <= n <= 2 * 10^4

Problem Breakdown

To solve this problem, we need to:

  1. This problem can be solved using dynamic programming.
  2. We need to keep track of the count of strings ending with each vowel.
  3. The state of the DP array is defined by the current length and the last vowel.
  4. The recurrence relation involves considering all possible previous vowels that can lead to the current vowel.
  5. The final answer is the sum of the counts for all vowels at length n.
ProblemSolutionCode
101 Logo
onenoughtone