/**上楼梯的复杂版?如果连续的两位数符合条件,就相当于一个上楼梯的题目,可以有两种选法:1.一位数决定一个字母2.两位数决定一个字母就相当于dp(i) = dp[i-1] + dp[i-2];如果不符合条件,又有两种情况1.当前数字是0:不好意思,这阶楼梯不能单独走,dp[i] = dp[i-2]2.当前数字不是0不好意思,这阶楼梯太宽,走两步容易扯着步子,只能一个一个走dp[i] = dp[i-1];*/
class Solution {public int numDecodings(String s) {final int length = s.length();if(length == 0) return 0;if(s.charAt(0) == '0') return 0;int[] dp = new int[length+1];dp[0] = 1;for(int i=0;i<length;i++){dp[i+1] = s.charAt(i)=='0'?0:dp[i];if(i > 0 && (s.charAt(i-1) == '1' || (s.charAt(i-1) == '2' && s.charAt(i) <= '6'))){dp[i+1] += dp[i-1];}}return dp[length];}
}

LeetCode 91. 解码方法相关推荐

  1. LeetCode 91.解码方法

    LeetCode 91.解码方法 ways: s[i] = 0 : if(s[i-1] == 1 || s[i-1] == 2) :s[i]只能和前一位绑定在一起,此时dp[i] = dp[i-2]; ...

  2. leetcode: 91. 解码方法

    91. 解码方法 来源:力扣(LeetCode) 链接: https://leetcode.cn/problems/decode-ways/ 一条包含字母 A-Z 的消息通过以下映射进行了 编码 : ...

  3. Java实现 LeetCode 91 解码方法

    91. 解码方法 一条包含字母 A-Z 的消息通过以下方式进行了编码: 'A' -> 1 'B' -> 2 - 'Z' -> 26 给定一个只包含数字的非空字符串,请计算解码方法的总 ...

  4. LeetCode 91. 解码方法(动态规划)

    1. 题目 一条包含字母 A-Z 的消息通过以下方式进行了编码: 'A' -> 1 'B' -> 2 ... 'Z' -> 26 给定一个只包含数字的非空字符串,请计算解码方法的总数 ...

  5. 125. Leetcode 91. 解码方法 (动态规划- 字符串系列)

    步骤一.确定状态: 确定dp数组及下标含义 dp[i]表示的是到i这个位置的字符串的解码方法 步骤二.推断状态方程: dp[i]的推导会取决于当前s[i]的字符情况以及前一位字符,具体如下: 如果当前 ...

  6. Leetcode 91. 解码方法 (每日一题 20211013)

    一条包含字母 A-Z 的消息通过以下映射进行了 编码 :'A' -> 1 'B' -> 2 ... 'Z' -> 26 要 解码 已编码的消息,所有数字必须基于上述映射的方法,反向映 ...

  7. leetcode - 91. 解码方法

    一条包含字母 A-Z 的消息通过以下方式进行了编码: ′A′−>1'A' -> 1′A′−>1 ′B′−>2'B' -> 2′B′−>2 ......... ′Z′ ...

  8. LeetCode 91. 解码方法 Java/Python

    一条包含字母 A-Z 的消息通过以下方式进行了编码: 'A' -> 1 'B' -> 2 ... 'Z' -> 26 给定一个只包含数字的非空字符串,请计算解码方法的总数. 示例 1 ...

  9. leetcode 91 解码方法 动态规划 递推

    // 各种特殊情况处理 // 选择从右往左,从左往右也是一样class Solution { public:int numDecodings(string s) {int n = s.length() ...

  10. leetcode 91. 解码方法(dp)

    解题思路 记忆化搜索,记录已经计算过的子问题 代码 func numDecodings(s string) int {temp:=make([]int,len(s),len(s))for i := r ...

最新文章

  1. ant root环境配置_如何给root用户设置PATH环境变量
  2. CVE-2012-1876调试要点
  3. NHibernate for .NET 1.2
  4. rotate array_Array.rotate! Ruby中的示例方法
  5. 发行版迁移及二进制兼容性注意事项
  6. 图片作为背景并且是链接的写法(背景图片加链接)
  7. 《大型数据库技术》MySQL数据库安装配置及基础使用
  8. 解决无法打开虚拟机的方法
  9. 【Android开发】jarsigner重新打包apk
  10. 项目管理方面的几个.NET开源项目
  11. For ourselves
  12. matlab及系统仿真期末试题,matlab与系统仿真综合试题
  13. 自动计数报警器c语言,计数报警器设计
  14. matlab 添加断点,matlab设置断点
  15. 3-八爪鱼自定义数据采集(关键词循环、数据格式化)
  16. 概念数据模型(CDM)、逻辑数据模型(LDM)、物理数据模型(PDM)区别以及哪些适合需求分析阶段的数据建模
  17. 如何 DIY 一台属于你自己的电脑?
  18. android系统升级实现,疯狂升级的Android系统
  19. 电脑白屏或黑屏解决方法
  20. 洛谷P2294 [HNOI2005]狡猾的商人

热门文章

  1. 32 - III. 从上到下打印二叉树 III
  2. Spring定时任务并行(异步)处理
  3. kotlin中mainactivity无法直接调用xml中的控件_使用Kotlin高效地开发Android App(一)
  4. SpringBoot-Jsoup做java简单-爬虫
  5. vue中既可以选择又可以手动输入的文本框类型_在PPT中制作一个胖乎乎的可爱圆环图...
  6. luci L大_智慧城市大讲堂 l 大咖说5G智慧大交通
  7. 怎么用class覆盖style样式
  8. Google菜市场(Android Market)上不去的解决方法
  9. 我就是那个一直拿着死工资的人
  10. vue+webpack 安装常见插件