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

静安区网站建设建设网站情况说明范文

静安区网站建设,建设网站情况说明范文,温州外贸网站建设,网站开发实战91. 解码方法 - 力扣(LeetCode) 在完成动态规划入门之后,我们先整一个中档题,也是前面简单题的变体。 分析思路: 在拿到最终结果之前,我们应该明确什么样的数字序列能够解码。 规则1:由于只有…

91. 解码方法 - 力扣(LeetCode)

在完成动态规划入门之后,我们先整一个中档题,也是前面简单题的变体。

分析思路:

在拿到最终结果之前,我们应该明确什么样的数字序列能够解码。

规则1:由于只有26个字母,所以如果是前后两位数字,必须要在1~26之间

规则2:单个0不能直接映射,例如03、05这种也不能映射,只有10和20才能够含有0

规则3:如果是单个映射那就只能在1~9之间,如果是两位数映射那么十位上只能是1或者2,如果是1的话,个位的范围是0~9,如果是2的话,个位的范围是0~6,也就是两位数在10~26之间

如果我们免去映射规则,那么这道题就退化成一次只能上一个或者两个台阶的题目了。所以这道题的区别就在于,有些台阶不能迈腿例如出现04,有些地方例如10或者20,只能迈两步不能迈一步,所以需要通过制定上面的规则来筛选出不能迈腿的地方,然后用台阶问题的模板解决。

接下里我们通过回答五个问题来逐步分析解题需要的过程。

1.状态表示什么

根据经验和题目要求,不难得到这道题的dp[i]可以表示为以i位置为结尾的解码方法的总数。我们一般先考虑从结尾向前,所以离结尾最近的一步有两种情况,据此写出状态转移方程。

2.状态转移方程

情况一:最后一步是单独解码,根据上面的规则可以知道,如果单独解码的数字在1~9之间则解码成功,否则解码失败不进行累加。

情况二:最后一步解码了两位数,根据上面的规则可以知道,如果两位数解码的数字在10~26之间则解码成功,否则解码失败不进行累加。

所以在两种情况都解码成功的情况下,状态转移方程为dp[i]=dp[i-1]+dp[i-2]

3.初始化

dp[0]:如果解码成功则为1,否则为0

dp[1]:情况一:单步和双步两种方法都解码失败,此时为0

情况二:单步和双步有一种成功一种失败,此时为1

情况三:单步和双步都解码成功,此时为2

4.填表顺序

根据状态转移方程可以知道:后面的值依赖前面的值,所以是从前往后填

5.返回值

按照dp[i]的定义可以知道,最后返回的就是dp[n-1]

具体实现:

class Solution {
public:int numDecodings(string s) {int n = s.size();vector<int> dp(n);//初始化dp[0] = (s[0] != '0');//先处理边界情况if(n == 1) return dp[0];//如果前两个数都不为0,就说明能单步解码if(s[0] != '0' && s[1] != '0')dp[1] += 1;int num = (s[0] - '0') *10 + s[1] -'0';//通过ASCII码转化来保存前两个位表示的数if(num>=10 && num<=26)dp[1] += 1;//填表for(int i=2;i<n;i++){if(s[i] != '0')dp[i] += dp[i-1];int tmp = (s[i-1] - '0')* 10 + s[i] - '0';//保存这种情况代表的两位数if(tmp>=10 && tmp<=26)dp[i] += dp[i-2];} return dp[n-1];}
};
http://www.yayakq.cn/news/465648/

相关文章:

  • 蓝色网站导航上海传媒公司李闪闪身价
  • 公司集团网站开发家具网站开发环境与工具
  • vs2010做网站教程给一个网站如何做推广
  • 长沙网站营销wordpress 搬家 空白
  • 网站备案需要哪些资料同个主体新增网站备案
  • 怎么查看竞争网站怎么做的seo天津seo招聘
  • 专注于网站营销服务上海全国网站建设
  • 胶州建设局网站网站服务器一年多少钱
  • 南京网站建设培训电脑网站建设
  • 医疗集团手机网站建设企业网络搭建拓扑图
  • 国内做的比较简洁的网站佛山城市建设工程有限公司
  • 广州模板建站多少钱html网站建设心得体会
  • 监控网站模版有关学校网站建设的建议
  • 热狗网站排名优化外包潼南区做网站的公司
  • 网站的整体风格大连在哪个省市
  • 我们是谁 网站运营互联网平台建设方案
  • 没有服务器如何做网站重庆怎么推广企业网站
  • 简述电子政务系统网站建设的基本过程网站设计师和ui设计师
  • 网站广告案例wordpress单栏极简
  • 网站seo外链建设腾讯朋友圈广告投放价格
  • 旅行社手机网站建设方案山西太原今天重大新闻
  • 网站如何做h5动态页面设计工单系统设计
  • 建网站有域名和主机深圳网站设计价格
  • 旅行社做网站wordpress 问答插件
  • 工程建设比选公告固价方式网站长沙商城网站制作
  • 做网站购买备案域名good建筑网站
  • 百度怎么建立自己的网站wordpress调用内容代码
  • 中国建设银行信用卡黑名单网站知名网建公司
  • 简单的购物网站开发手机发博客wordpress
  • 网站后台程序设计常用语言 技术的分析比较网站设计论文结束语