LeetCode in Kotlin

1641. Count Sorted Vowel Strings

Medium

Given an integer n, return the number of strings of length n that consist only of vowels (a, e, i, o, u) and are lexicographically sorted.

A string s is lexicographically sorted if for all valid i, s[i] is the same as or comes before s[i+1] in the alphabet.

Example 1:

Input: n = 1

Output: 5

Explanation: The 5 sorted strings that consist of vowels only are ["a","e","i","o","u"].

Example 2:

Input: n = 2

Output: 15

Explanation: The 15 sorted strings that consist of vowels only are

[“aa”,”ae”,”ai”,”ao”,”au”,”ee”,”ei”,”eo”,”eu”,”ii”,”io”,”iu”,”oo”,”ou”,”uu”].

Note that “ea” is not a valid string since ‘e’ comes after ‘a’ in the alphabet.

Example 3:

Input: n = 33

Output: 66045

Constraints:

Solution

class Solution {
    fun countVowelStrings(n: Int): Int {
        if (n == 1) {
            return 5
        }
        var arr = intArrayOf(1, 1, 1, 1, 1)
        var sum = 5
        for (i in 2..n) {
            val copy = IntArray(5)
            for (j in arr.indices) {
                if (j == 0) {
                    copy[j] = sum
                } else {
                    copy[j] = copy[j - 1] - arr[j - 1]
                }
            }
            arr = copy.copyOf(5)
            sum = 0
            for (k in arr) {
                sum += k
            }
        }
        return sum
    }
}
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy