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

公司简介模板免费使用seo薪资seo

公司简介模板免费使用,seo薪资seo,赤壁专业建站公司,做网页代码的素材网站91. 解码方法 题目链接: 91. 解码方法 题目叙述: 一条包含字母 A-Z 的消息通过以下映射进行了 编码 : “1” -> ‘A’ “2” -> ‘B’ … “25” -> ‘Y’ “26” -> ‘Z’ 然而,在解码已编码的消息时,你…

在这里插入图片描述
在这里插入图片描述

91. 解码方法

题目链接: 91. 解码方法
题目叙述: 一条包含字母 A-Z 的消息通过以下映射进行了 编码

“1” -> ‘A’
“2” -> ‘B’

“25” -> ‘Y’
“26” -> ‘Z’
然而,在解码已编码的消息时,你意识到有许多不同的方式来解码,因为有些编码被包含在其它编码当中(“2” 和 “5” 与 “25”)。

例如,11106可以映射为:

"AAJF" ,将消息分组为 (1, 1, 10, 6)
"KJF" ,将消息分组为 (11, 10, 6)
消息不能分组为 (1, 11, 06) ,因为 “06” 不是一个合法编码(只有 “6” 是合法的)。
注意,可能存在无法解码的字符串。

给你一个只含数字的 非空 字符串 s,请计算并返回 解码 方法的 总数 。如果没有合法的方式解码整个字符串,返回 0

题目数据保证答案肯定是一个 32 位 的整数。

示例 1:

输入: s= “12”
输出: 2
解释: 它可以解码为 “AB”(1 2)或者 “L”(12)。

示例 2:

输入: s = “226”
输出: 3
解释: 它可以解码为 “BZ” (2 26), “VF” (22 6), 或者 “BBF” (2 2 6) 。

示例 3:

输入: s = “06”
输出: 0
解释: “06” 无法映射到 “F” ,因为存在前导零(“6” 和 “06” 并不等价)。

提示:

1 <=s.length<= 100
s 只包含数字,并且可能包含前导零。


💦 前提注意: 这道题的s是一个非空字符串,而不是数组,所以计算时应减去'0'
解题思路:

  1. 状态表示
    dp[i]表示:以i位置为结尾时,所有解码方法的总数
  2. 状态转移方程
    根据最近的一步,划分问题
    在这里插入图片描述
    其中a表示s[i]位置的数,b表示s[i-1]位置的数
    dp[i] = dp[i-1] + dp[i-2]
  3. 初始化
    保证填表时不越界
    0位置结尾时说明此时只解码了一个字符
    在这里插入图片描述
    1位置结尾时说明此时解码了两个字符
    在这里插入图片描述
  4. 填表顺序
    从左向右
  5. 返回值
    dp[n-1]

代码实现:

class Solution {
public:int numDecodings(string s) {//创建dp表//初始化//填表//返回值int n = s.size();vector<int> dp(n);dp[0] = s[0] != '0';//处理边界条件if (n == 1) return dp[0];if (s[0] != '0' && s[1] != '0') dp[1] += 1;//第一个位置能单独解码,并且第二个位置也能单独解码int t = (s[0] - '0') * 10 + s[1] - '0';//前两个位置所表示的数if (t >= 10 && t <= 26) dp[1] += 1;for (int i = 2; i < n; i++){if (s[i] != '0') dp[i] += dp[i - 1];//处理单独解码的情况int t = (s[i - 1] - '0') * 10 + s[i] - '0';//第二种情况所对应的数if (t >= 10 && t <= 26) dp[i] += dp[i - 2];}return dp[n - 1];}

细节优化:
处理边界问题以及初始化问题的技巧

  • 我们可以开一个比旧的表多1个的新的dp表,使得旧dp表下标为0的位置,映射到新的dp表下标为1的位置,旧的下标为1的位置映射到新的下标为2的位置…依次类推。
    在这里插入图片描述
  • 这样以来dp[i]就可以表示为以第i个字符为终点的解码方法的个数。所以就只需要初始化第1的字符即可。
  • 这里有个小细节,我们在初始化dp[0]这个虚拟节点时要将它初始化成1,比如只有两个字符我们要判断时 ,第二个字符单独解码时的方法数为1,第二个字符与第一个字符共同解码时的方法总数应该为2dp[2] = dp[1] + dp[0],我们可以将dp[0]给反推出来,所以dp[0]应该初始化为1
    在这里插入图片描述

代码实现:

class Solution {
public:int numDecodings(string s) {//创建dp表//初始化//填表//返回值int n = s.size();//创建dp表vector<int> dp(n+1);dp[0] = 1;dp[1] = s[0] != '0';for(int i = 2;i <= n;i++){if(s[i-1] != '0') dp[i]+=dp[i-1];int b = 10*(s[i-2]-'0') + (s[i -1] - '0');if(b>=10 && b <= 26) dp[i]+=dp[i- 2];}return dp[n];}
};
http://www.dtcms.com/wzjs/524123.html

相关文章:

  • 荔湾区做网站吴中seo页面优化推广
  • 广州微信网站建设平台网络营销和网络推广有什么区别
  • 酒店网站建设策划书怎么写整站优化代理
  • 做网站设计工作的报告书怎样弄一个自己的平台
  • 国内用JSP做的网站有哪些四川seo整站优化费用
  • wordpress主题ftp失败徐州百度seo排名优化
  • wordpress主题 四亩地烟台seo
  • 周口学做网站湖南网站seo推广
  • 江北网站建设价格优化关键词的方法有哪些
  • 哪些网站可以做文字链广告seo应用领域有哪些
  • 云南网站建设维修公司哪家好百度人气榜排名
  • 宁波市镇海建设交通局网站首页今日国内新闻最新消息
  • 学做软件的网站营销软件哪个好
  • 网站开发相关书籍资料百度手机助手下载2021新版
  • 无锡网站建设服务公司app运营需要做哪些
  • 怎么做网站内部搜索功能网络营销与策划实践报告
  • 建筑设计网站大全网站关键词林俊杰在线听免费
  • 网站主要内容包括什么软文发布平台媒体
  • 网站选择理由描述完整的网页设计代码
  • 杭州网站建设排名宣传渠道和宣传方式有哪些
  • 做网站建设公司企业西安百度竞价推广
  • 网站建设功能设计关键词优化的方法有哪些
  • 延吉做网站页面优化的方法有哪些
  • 温州网页网站制作宁德市蕉城区疫情
  • 加强门户网站建设方案网店买卖有哪些平台
  • 网站上的定位怎么做百度搜索推广官网
  • 环保公司网站建设方案精准营销推广方案
  • 做网站是不是也是暴利百度搜索引擎投放
  • liferay 做网站三只松鼠的软文范例
  • 学校网站div css模板网络营销有哪几种方式