zoukankan      html  css  js  c++  java
  • 1220. 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.

    Example 1:

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

    Example 2:

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

    Example 3: 

    Input: n = 5
    Output: 68

    Constraints:

    • 1 <= n <= 2 * 10^4
    class Solution {
        public int countVowelPermutation(int n) {
            long acount = 1, ecount = 1, icount = 1, ocount = 1, ucount = 1;
            int mod = 1000000007;
            for(int i = 1; i < n; i++) {
                long newac = (ecount + icount + ucount) % mod;
                long newec = (acount + icount) % mod;
                long newic = (ecount + ocount) % mod;
                long newoc = (icount) % mod;
                long newuc = (icount + ocount) % mod;
                
                acount = newac;
                ecount = newec;
                icount = newic;
                ocount = newoc;
                ucount = newuc;
            }
            return (int) ((acount + ecount + icount + ocount + ucount) % mod);
        }
    }

    hard??

     dp, 对应的是以这个字母为结束的这么多位数的个数

  • 相关阅读:
    springMvc接口请求参数
    ThreadLocal 结构
    遇到的问题
    jsonview的安装
    Java
    学习资源
    Java
    Java
    Java
    Java
  • 原文地址:https://www.cnblogs.com/wentiliangkaihua/p/14970757.html
Copyright © 2011-2022 走看看