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

诊所网站模板软文素材网

诊所网站模板,软文素材网,百度网站名称及网址,网站如何运营维护1. 解码方法 题目链接: 91. 解码方法 - 力扣(LeetCode)https://leetcode.cn/problems/decode-ways/description/ 2. 题目解析 1. 对字母A - Z进行编码1-26 2. 11106可以解码为1-1-10-6或者11-10-6, 但是11-1-06不能解码 3. 0n不能解码 4. …

1. 解码方法

题目链接:

91. 解码方法 - 力扣(LeetCode)icon-default.png?t=O83Ahttps://leetcode.cn/problems/decode-ways/description/


2.  题目解析  

1. 对字母A - Z进行编码1-26

   

2. 11106可以解码为1-1-10-6或者11-10-6, 但是11-1-06不能解码

   

   

3. 0n不能解码

   

4. 字符串非空,返回解码方法的总数


3. 算法原理 

1. 状态表示:以i位置为结尾

    

dp[i]表示:以i位置为结尾时,解码方法的总数

   

创建dp(n+1)的dp表,第一个位置用作虚拟位置,对应的第i个位置映射的下标也为i,只用初始化第一个dp表的位置即可

2. 状态转移方程

  

根据最近的一步来划分问题:

                                                1. s[i]位置单独解码

                                                                        a.解码成功,1<=a<=9,dp[i-1]

                                                                        b.解码失败,0

                                                2. s[i-1] 与 s[i]进行解码

                                                                        a.解码成功,10<=b*10+a<=26,dp[i-2]

                                                                        b.解码失败,0

        

本题的状态转移方程是:dp[i] = dp[I-1] + dp[I-2](解码成功的情况下,解码失败即为0)

3. 初始化 :把dp表填满不越界,让后面的填表可以顺利进行

        

dp[i]表示:以i位置为结尾时,解码方法的总数

    

1. 以0位置为结尾,说明只有一个字符,一个字符的解码方案数要么是1,要么是0,当dp[0]为1<=a<=9时,解码成功,否则失败

   

2.以1位置为结尾,说明有两个字符,两个字符的解码方案数要么是1,要么是0,要么是2

4. 填表顺序 

    

本题的填表顺序是:从左到右

5. 返回值 :题目要求 + 状态表示 

    

本题的返回值是:直接返回dp[n-1]


4. 代码

动态规划的固定四步骤:1.  创建一个dp表

                                        2. 在填表之前初始化

                                        3. 填表(填表方法:状态转移方程)

                                        4. 确定返回值 

class Solution {
public:int numDecodings(string s) {int n=s.size();//创建dp表vector<int>dp(n);//在填表之前初始化dp[0]=s[0]!='0';//初始化0位置为结尾,dp[0]在1~9之间//处理边界化if(n==1) return dp[0];//如果只有一位数的话就直接返回//如果第一个位置的值和第二个位置的值都可以单独编码if(s[0]!='0' && s[1]!='0') dp[1]+=1;//如果需要进行组合解码 10<=b*10+a<=26int t=(s[0]-'0')*10+s[1]-'0';//前两个位置所表示的数if(t>=10 && t<=26) dp[1]+=1;//0~9之间解码会出现01,02之类的// 填表for(int i=2;i<n;i++){//如果单独编码if(s[i]<='9'&&s[i]>='1') 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];}
};


完结撒花~

http://www.yayakq.cn/news/556522/

相关文章:

  • 沧浪苏州网站建设外包服务合同
  • 网站开发标书怎么写网站建设公司 校园网站
  • 网站建设的理由北京互联网公司有哪些
  • 南阳专业做网站软文代写文案
  • 兰溪好品质高端网站设计建设工程查询网站
  • 莆田外贸网站建设有哪些购物网站建设需求
  • 重庆网站seo自己怎么注册网站模板
  • 货架网站开发wordpress静态化链接
  • 网站模板建设二级目录腾讯云如何建设网站
  • 惠州网站制作哪里好崇文网站建设
  • 广州网站开发报价陇西哪里能学做网站
  • 网站的备案iframe 一直网站底部
  • jquery 购物网站网站建设公司发展方向及趋势
  • 浏览器网站网址大全屋顶平台设计
  • 做网站建建立手机也可浏览的网站教程
  • 创建小程序要多少钱seo技术入口
  • 网络营销推广有效方式网站关键词seo排名
  • 网站的数据库选择现成的手机网站做APP
  • 动画网站源码门户网站优化方案
  • python语言是什么win7系统优化工具
  • 广西建设网是正规网站吗哈尔滨精品网站制作
  • 一流的句容网站建设网站结构优化包括什么
  • 网站备案有什么风险免费商城平台
  • 成都哪家做网站好物流营销型网站案例分析
  • 网站企业业务员怎么做天津企业网站建设开发维护
  • 可以免费注册网站免费制作贺卡的app
  • jsp网站开发软件网站页面优化签象客
  • 昆山h5网站建设建设评标专家在哪个网站
  • 网站建设制作设计营销 广州河北廊坊建设银行网站
  • 做面料哪个网站好网站用oracle做数据库