iT邦幫忙

0

30天Leetcode挑戰(9):1220. Count Vowels Permutation

  • 分享至 

  • xImage
  •  

碎碎念

AI已經強大到我覺得「他已經知道我在刷leetcode」了......
可能我問問題的時候直接讓他知道我是要看母音吧

是說,我很想知道到底是誰在看我的文章,一百多瀏覽到底是怎樣
看到這句話的可以留言一下你們為甚麼會點進來嗎

題幹

這一題要根據n(長度)在指定規則下生成盡可能多的list
可用的元素是英文的母音
例如n=1的話,就是[a][e]......共五組
n=2=>[ae][ea]......共十組
規則題目有給,自己看
反正最後要返回的數字是「總共可以生成多少組」

解題思路

這個看起來就很迭代,一開始我想要用遞迴來處理,根據每一個list最後一個元素來生成新的list
但後來AI直接幫我省掉這個方案
我自己半段原因如下

  1. 很多時候根本不需要把所有list生出來
  2. 代碼半段字符很花容量

所以後來用了轉換矩陣這個酷方法

class Solution:
    def countVowelPermutation(self, n: int) -> int:
    # 初始值代表a, e, i, o, u
        counts = [1, 1, 1, 1, 1]
        
        for _ in range(2, n + 1):
            # 使用當前的counts來計算下一個的counts
            a, e, i, o, u = counts
            counts = [
                e,           # 下一個a的數量
                a + i,       # 下一個e的數量
                a + e + o + u, # 下一個i的數量
                i + u,       # 下一個o的數量
                a            # 下一個u的數量
            ]
        
        return sum(counts)%1000000007

把符號運算數字化,很酷


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言