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

服务专业的品牌建站公司网络广告设计

服务专业的品牌建站公司,网络广告设计,邢台专业做网站,网站宣传模式文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 我们使用逆向思维发现如果连续按存在三个字母的按键,最后一个按键表示的字母可以是某个字母连续出现一次、两次、三次这三种情况的方案数之和 我们发现连续按存在三个字母的按键,当连续按…

文章目录

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

题目描述

在这里插入图片描述

题解思路

我们使用逆向思维发现如果连续按存在三个字母的按键,最后一个按键表示的字母可以是某个字母连续出现一次、两次、三次这三种情况的方案数之和
我们发现连续按存在三个字母的按键,当连续按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.dinnco.com/news/74675.html

相关文章:

  • 东莞凤岗做网站深圳网络营销网站设计
  • 山东系统建站怎么用谷歌账号
  • 盘锦微商网站建设补习班
  • 品牌建设论文怎么写百度seo在线优化
  • 青岛网站制作公司排名做销售怎样去寻找客户
  • 利用云盘做网站东莞网络营销推广公司
  • 免费网站建设真有这样的好事深圳今日头条新闻
  • 邢台做移动网站价格国际新闻界期刊
  • 网站改版需要怎么做推广平台排行榜app
  • 医学网站建设方案今日热搜前十名
  • seo网站策划临沂森佳木业有限公司
  • 垫江做网站谷歌浏览器下载
  • 咸秧草做哪些网站免费域名申请网站大全
  • 云南SEO网站建设中国营销策划第一人
  • 商务网站建设的一般流程是什么搜索词和关键词
  • 做网站那个平台好网站关键词快速排名优化
  • 谷歌浏览器下载手机版seo案例分析及解析
  • 毕业设计做网站 答辩会问什么问题黄金网站软件app大全下载
  • 网站宣传专利被罚淘宝关键词排名查询工具免费
  • 鞍山网站建设找金航搜索优化seo
  • 体育西网站开发设计上海网络优化服务
  • 快彩网站开发百度爱采购排名
  • 企业检索网站建设seo网站推广优化就找微源优化
  • 高密 网站建设seo 资料包怎么获得
  • 做网站服务器哪个好怎么宣传网站
  • 贵州网推传媒有限公司搜索引擎优化的基础是什么
  • 电影网站cpa怎么做白百度一下你就知道
  • 企业网站div css整站免费模板临沂seo网站管理
  • 做简易动画的网站谷歌外贸平台
  • 网站被百度k谷歌搜索引擎免费入口 台湾