文章目录

  • URL
  • 题目
  • 分析
  • 源码
    • DP动态规划
    • 矩阵快速幂
  • 源码概述
  • 小结

URL

链接:https://leetcode-cn.com/problems/count-vowels-permutation/


题目



分析




源码

DP动态规划

#include <stdio.h>
#include <stdlib.h>
#include <string.h>typedef long long LL;int countVowelPermutation(int n){/* 0.1 */long long mod = 1e9 + 7 ;   //取模 避免数据过大long long ans = 0;          //返回值 存储最后所有的可能项的数量LL * dp = (LL *)malloc(sizeof(LL)*5);   // 前一次计算数据LL * ndp = (LL *)malloc(sizeof(LL)*5);  // 存储当前次计算数据/* a , e , i , o , u *//* 0 , 1 , 2 , 3 , 4 *//* 1.1 *//* n = 1 */for (int i = 0;i < 5 ; i++){dp[i] = 1;}/* 1.2 *//* n >= 2 */for (int i=2;i<=n;i++){             // Tip : i <= n/* 1.3 *//* e , u , i    + a */ndp[0] = (dp[1] + dp[2] + dp[4]) % mod; // n >= 2时,以各个元音结尾的数量(n为i的时候的数据)/* a , i        + e */ndp[1] = (dp[0] + dp[2]) % mod;/* e , o        + i */ndp[2] = (dp[1] + dp[3]) % mod;/* i            + o *///ndp[3] = (dp[2]) % mod;ndp[3] = dp[2];                 //Tip : it is already been calculated by mod/* i , o        + u */ndp[4] = (dp[2] + dp[3]) % mod;/* 1.4 */memcpy(dp , ndp , sizeof(LL)*5 );   // 将当前次各个数量赋值给下一次待计算的数值变量}/* 2.1 */for (int i =0 ;i < 5 ;i++){ans = ( ans + dp[i]) % mod;}/* 0.2 */free(dp);free(ndp);return ans;
}int main()
{int n = 0;int ans = 0;n = 1; // -> 5ans = countVowelPermutation(n);printf("n = %d , len = %d\n",n,ans);n = 2; // -> 10ans = countVowelPermutation(n);printf("n = %d , len = %d\n",n,ans);n = 5; // -> 68ans = countVowelPermutation(n);printf("n = %d , len = %d\n",n,ans);return 0;
}

矩阵快速幂


源码概述

dp动态规划

  1. 计算每一个字符的前一个字符可能的组合情况
  2. 对每一个字母的符合的状态做动态规划,即将前一种状态累加到当前状态中
  3. 将上述的情况做 加法 , 得到最终总的组合数量

矩阵快速幂


小结

dp动态规划

  1. 将当前字符当做最后一个字符分析,得到前一个字符的可能情况
  2. 从前一个状态分析得到当前状态,得到动态规划递推公式
  3. 汇总每一种分情况的数据,得到总的数据。

矩阵快速幂

【leetcode_1220】【困难】count-vowels-permutation / 统计元音字母序列的数目相关推荐

  1. 每日一题:1220. 统计元音字母序列的数目(Count Vowels Permutation)

    这题是7/4/2021英文站leetcode的每日一题, 想把自己的想法和思路记录下来. 题目: Given an integer n, your task is to count how many ...

  2. 1220.统计元音字母序列的数目-LeetCode

    难度:困难 目录 一.问题描述 二.解题思想 1.方法一 2.方法二(动态规划) 三.解题 1.判断极端情况 2.代码实现 一.问题描述 这里我直接采用的LeetCode上面的问题描述. 给你一个整数 ...

  3. LeetCode 1220. 统计元音字母序列的数目(DP)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个整数 n,请你帮忙统计一下我们可以按下述规则形成多少个长度为 n 的字符串: - 字符串中的每个字符都应当是小写元音字母('a', 'e', 'i ...

  4. 统计元音字母——输入一个字符串,统计处其中元音字母的数量。更复杂点的话统计出每个元音字母的数量。

    /*** 统计元音字母--输入一个字符串,统计处其中元音字母的数量.* 更复杂点的话统计出每个元音字母的数量.* @author cscss**/ public class CountYuanYin ...

  5. [一天一项目]统计元音字母

    统计元音字母--输入一个字符串,统计处其中元音字母的数量.更复杂点的话统计出每个元音字母的数量. 统计元音字母,其实和拉丁猪文字游戏有异曲同工之妙,算法其实差不多,但是统计元音字母有两种理解方式: 计 ...

  6. 从键盘上输入任意个任意字母,统计元音字母 a、e、i、o、u 共出现多少次。

    从键盘上输入任意个任意字母,统计元音字母 a.e.i.o.u 共出现多少次. package chapter6.homework;import java.util.Scanner;public cla ...

  7. Quzh[python]统计元音字母——输入一个字符串,统计处其中元音字母的数量。

    #!/usr/bin/env python # coding:utf-8def Quzh_Statistics_Vowel(strString):"""统计元音字母--输 ...

  8. python统计元音字母个数_计算Python中的元音(Counting vowels in python)

    计算Python中的元音(Counting vowels in python) def main(): print(count) def countVowels(string): vowel=(&qu ...

  9. 输入一串字符,统计元音字母个数

    输入一串字符(长度不超过1000,以回车符结束),统计其中元音字母的个数.输出要求:输入一个整数,表示元音字母个数:输出单独占一行. /*给的示例需要注意说明:'A和'a'都是元音.*/ 输入:Hel ...

最新文章

  1. Java实现SSH模式加密
  2. python数据类型-Python3基本数据类型(一、数字类型)
  3. android ApiDemos学习1 主界面动态ListView显示
  4. 编写Tesseract的Python扩展
  5. php查询sql2008数据库操作系统,使用 PHP 进行查询 - Azure SQL Database SQL Managed Instance | Microsoft Docs...
  6. python增删改查csv文件_Python--作业2--对员工信息文件,实现增删改查操作
  7. mysql 存储过程已存在_sql存储过程实现 添加新用户,判断是否已存在
  8. 多元相关性分析_电子健康素养与中青年脑卒中患者健康行为的相关性分析
  9. 计算机专业中专排名,江西计算机专业学校排名中专
  10. Linux下NTP时间同步客户端配置
  11. 51单片机波特率计算的公式和方法
  12. 医学统计学笔记之设计
  13. airflow问题系列2 —— task保持running假死状态
  14. 一个页面中有多个audio标签,其中一个播放结束后自动播放下一个,audio连续播放
  15. 组织架构图怎么画?思维导图创作教程分享
  16. [转]【C/C++】STL详解
  17. Spark的坑--Spark新手必看--Python Spark必读,耗费了我近三周的时间
  18. 图书馆管理信息系统的用例图和类图
  19. 缓和曲线与原曲线任意点坐标计算程序
  20. 51Nod 圆与三角形

热门文章

  1. URL 参数编解码详解
  2. pyqt5 源码 eric 记录
  3. GoLang格式化占位符
  4. Java实现文件批量导入导出实例(兼容xls,xlsx)
  5. P2p网站建设解决方案
  6. MySQL数据库查询(实验四)
  7. mount: /dev/sr0 写保护,将以只读方式挂载 mount: 在 /dev/sr0 上找不到媒体 怎么解决
  8. 织梦dedecms源码安装方法 织梦安装教程(图文)
  9. SQL Server 事务日志已满,3种解决方案
  10. 学无止境,学无止境啊