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

碎碎念

AI已经强大到我觉得「他已经知道我在刷leetcode」了......
可能我问问题的时候直接让他知道我是要看母音吧

是说,我很想知道到底是谁在看我的文章,一百多浏览到底是怎样
看到这句话的可以留言一下你们为甚么会点进来吗

题干

这一题要根据n(长度)在指定规则下生成尽可能多的list
可用的元素是英文的母音
例如n=1的话,就是[a][e]......共五组
n=2=>[ae][ea]......共十组
规则题目有给,自己看
反正最后要返回的数字是「总共可以生成多少组」

解题思路

这个看起来就很迭代,一开始我想要用递迴来处理,根据每一个list最后一个元素来生成新的list
但后来AI直接帮我省掉这个方案
我自己半段原因如下

很多时候根本不需要把所有list生出来代码半段字符很花容量

所以后来用了转换矩阵这个酷方法

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

把符号运算数字化,很酷


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章