#+ANKI_DECK: study_deck_02 * TODO 1220. Count Vowels Permutation :hard: :PROPERTIES: :NEETCODE: [[file:../../roadmap.org::*1220. Count Vowels Permutation][1220. Count Vowels Permutation]] :END: 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~. *Example 1:* #+begin_src Input: n = 1 Output: 5 Explanation: All possible strings are: "a", "e", "i" , "o" and "u". #+end_src *Example 2:* #+begin_src Input: n = 2 Output: 10 Explanation: All possible strings are: "ae", "ea", "ei", "ia", "ie", "io", "iu", "oi", "ou" and "ua". #+end_src *Example 3: * #+begin_src Input: n = 5 Output: 68 #+end_src *Constraints:* - ~1 <= n <= 2 * 10^4~ ** TODO Approach Write your approach here. ** TODO Python #+begin_src python class Solution: def countVowelPermutation(self, n: int) -> int: #+end_src ** TODO C++ #+begin_src cpp class Solution { public: int countVowelPermutation(int n) { } }; #+end_src