当前位置: 首页 > news >正文

宁夏回族自治区建设厅网站石家庄百度seo

宁夏回族自治区建设厅网站,石家庄百度seo,网站企业模板,tag改为静态wordpress文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 我们使用逆向思维发现如果连续按存在三个字母的按键,最后一个按键表示的字母可以是某个字母连续出现一次、两次、三次这三种情况的方案数之和 我们发现连续按存在三个字母的按键,当连续按…

文章目录

  • 题目描述
  • 题解思路
  • 题解代码
  • 题目链接

题目描述

在这里插入图片描述

题解思路

我们使用逆向思维发现如果连续按存在三个字母的按键,最后一个按键表示的字母可以是某个字母连续出现一次、两次、三次这三种情况的方案数之和
我们发现连续按存在三个字母的按键,当连续按i次时其方案数f[i] = f[i - 1] + f[i - 2] + f[i - 3]
其中f[i - 1]表示最后一个按键表示的最后一个字母连续出现一次的方案数
f[i - 2]表示最后一个按键表示的最后一个字母连续出现l两次的方案数
f[i - 3]表示最后一个按键表示的最后一个字母连续出现三次的方案数

类似的按存在四个字母的按键,当连续按i次时其方案数f[i] = f[i - 1] + f[i - 2] + f[i - 3] + f[i - 4]

然后我们只需要计算所有连续的字母其出现了几次,然后将其方案数相乘就是最终的结果

题解代码

func countTexts(pressedKeys string) int {const mod = 1000000007n := len(pressedKeys)f3, f4 := make([]int, 0, n + 1), make([]int, 0, n + 1)f3 = append(f3, 1, 1, 2, 4)f4 = append(f4, 1, 1, 2, 4)for i := 4; i <= n; i++ {f3 = append(f3, (f3[i - 1] + f3[i - 2] + f3[i - 3]) % mod)f4 = append(f4, (f4[i - 1] + f4[i - 2] + f4[i - 3] + f4[i - 4]) % mod)}ans, cnt := 1, 0for i := 0; i < n; i++ {cnt++if i == n - 1 || pressedKeys[i] != pressedKeys[i + 1] {if pressedKeys[i] == '7' || pressedKeys[i] == '9' {ans = ans * f4[cnt] % mod} else {ans = ans * f3[cnt] % mod}cnt = 0}}return ans
}

题目链接

https://leetcode.cn/problems/count-number-of-texts/description/

http://www.hkea.cn/news/7594/

相关文章:

  • 网站建设相关小论文seo入门培训教程
  • ASP动态网站编程与应用网络媒体发稿平台
  • 阳泉那有做网站的营销推广案例
  • 拉萨网站开发什么是seo教程
  • 手机靓号网站建设google引擎免费入口
  • 网站内网页标题对百度排名百度网盘资源链接入口
  • 如何给一个公司做网站免费站推广网站不用下载
  • 公司网站二维码怎么做的推广计划方案
  • 网站开发设计论文seo管理系统创作
  • 龙岗做网站公司哪家好补肾壮阳吃什么药效果好
  • 网站建设如何把更改内容手机访问另一部手机访问文件
  • 做神秘顾客哪个网站好杭州网站优化服务
  • 深圳做网站服务全国病毒感染最新消息
  • 门户网站开发架构seo实训报告
  • 网站 河北 备案 慢推广普通话内容
  • 网站建设请示文件站长工具ip地址查询域名
  • 网站根 html全网推广公司
  • dw网页制作基础知识关键词整站排名优化
  • 网站开发定制合同范本网页关键词优化软件
  • 中国建设银行江西分行网站首页电脑版百度网盘
  • 网站要做手机版怎么做日照网络推广公司
  • 广东网站备案时间百度集团股份有限公司
  • 站酷网vi设计推广运营平台
  • 网上查公司怎么查营销排名seo
  • 淄博做网站小程序的公司湖州网站建设制作
  • 如何把网站上线起飞页自助建站平台
  • 凡科的模板做网站免费技能培训网
  • 日本做外贸网站设计高质量关键词搜索排名
  • 做百科网站武汉seo全网营销
  • 手机开发者选项网站排名优化师