一条包含字母 A-Z 的消息通过以下映射进行了 编码 :'A' -> 1
'B' -> 2
...
'Z' -> 26
要 解码 已编码的消息,所有数字必须基于上述映射的方法,反向映射回字母(可能有多种方法)。例如,"11106" 可以映射为:"AAJF" ,将消息分组为 (1 1 10 6)
"KJF" ,将消息分组为 (11 10 6)
注意,消息不能分组为  (1 11 06) ,因为 "06" 不能映射为 "F" ,这是由于 "6" 和 "06" 在映射中并不等价。给你一个只含数字的 非空 字符串 s ,请计算并返回 解码 方法的 总数 。题目数据保证答案肯定是一个 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 = "0"
输出:0
解释:没有字符映射到以 0 开头的数字。
含有 0 的有效映射是 'J' -> "10" 和 'T'-> "20" 。
由于没有字符,因此没有有效的方法对此进行解码,因为所有数字都需要映射。
示例 4:输入:s = "06"
输出:0
解释:"06" 不能映射到 "F" ,因为字符串含有前导 0("6" 和 "06" 在映射中并不等价)。链接:https://leetcode-cn.com/problems/decode-waysclass Solution:def numDecodings(self, s: str) -> int:length = len(s)dp = [0] * (length + 1)dp[0] = 1s = ' ' + sfor i in range(1, length + 1):a = ord(s[i]) - ord('0')b = (ord(s[i-1]) - ord('0')) * 10 + (ord(s[i]) - ord('0'))if 1<= a <= 9:dp[i] = dp[i-1]if 10 <= b <= 26:dp[i] += dp[i-2]return dp[-1]

Leetcode 91. 解码方法 (每日一题 20211013)相关推荐

  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. 解码方法

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

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

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

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

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

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

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

最新文章

  1. 如何实现对ELK各组件的监控?试试Metricbeat
  2. 如何格式化电脑_U盘提示格式化后如何恢复数据
  3. 《编译与反编译技术》——第一章 引论 1.1节编译器与解释器
  4. h3c telnet
  5. Eclipse设置文字大小
  6. python 整数输出 d f_如何将数字(10,11,12,13,14,15)分配给Python 3中的字母(A,B,C,D,E,F)?...
  7. PDF文档解析,公司公告信息抽取(附数据集)
  8. 【数字全排列】LeetCode 46. Permutations
  9. Atitit java rest mvc微服务原理以及框架选型 目录 第一节 Mvc原理 model controler view 1 第二章 Spark 最简单 1 第一节 Sprbt to
  10. 【Axure10基础教程】第六章 动态面板
  11. web前端教程,详解引入CSS的4种方式
  12. MATLAB聚类分析学习笔记
  13. JSP学科竞赛管理系统
  14. oracle ogg数据格式转换,Oracle 19C OGG基础运维-02数据初始化
  15. 离线语音交互技术路线之语音合成(TTS)篇
  16. redis incr mysql_INCR
  17. MTK平台点亮sensor以及mtk开机初始化
  18. 在json或数组中利用find方法实现根据value值获取key值的过程
  19. 利用Serverless构建微信小程序的Server端
  20. 守护软件供应链安全:国产软件BinSearch的最佳实践

热门文章

  1. 简单的java多线程源码分享(二)
  2. JS动态获取当前时间
  3. [Spring boot] Spring boot + JPA 基本架构,完成CRUD
  4. JavaScript 字符串连接性能比较
  5. Android基础---获取手机硬件数据(转)
  6. LVS学习笔记--概念
  7. C# WinForm开发系列 - DataGrid/DataGridView
  8. esp8266 SDK开发之编译流程
  9. CSP认证201409-2 画图[C++题解]:模拟、图形的并
  10. win10如何使用pip下载适合自己python版本的matplotlib?(亲测有效)