原文

A message containing letters from A-Z is being encoded to numbers the following mapping:

'A' -> 1
'B' -> 2
...
'Z' -> 26

Given an encoded message containing digits, determine the total number of ways to decode it.

For example,
Given encoded message “12”, it could be decoded as “AB” (1 2) or “L” (12).

The number of ways decoding “12” is 2.

翻译

一条信息包括字母A-Z,它们按如下方式被映射到相应的数字:

'A' -> 1
'B' -> 2
...
'Z' -> 26

给定一个包含数字的编码信息,得出一共有多少种可能的编码方式。

例如,
给定的编码信息是“12”,它可能是“AB”(1 2),也可能是“L”(12)。

所以“12”的编码方式有2种。

代码

题目看了半天才看懂,沮丧脸……

由于是在LeetCode上尝试分类结题,这题被归在了String下面,我以为只是简单的字符串操作就可以搞定,后来发现遍历过程是动态的,也就是要用到DP了。

由于现在对DP还不是很熟练,所以没能解出来,先借用大神的代码来占个坑吧。

bool valid(string s) {if (s[0] == '0')return false;if (s[0] > '2' || (s[0] == '2' && s[1] > '6'))return false;return true;
}int numDecodings(string s) {int len = s.length();if (len == 0 || s[0] == '0') return 0;vector<int> dp(len + 1, 0);dp[0] = 1;dp[1] = 1;for (int i = 2; i <= n; i++) {if (s[i - 1] != '0') dp[i] += dp[i - 1];if (valid(s.substr(i - 2, 2))) dp[i] += dp[i - 2];if (dp[i] == 0) return 0;}return dp[len];
}

LeetCode 91 Decode Ways(编码方式)(*)相关推荐

  1. 【DFS + 记忆化递归 + DP】LeetCode 91. Decode Ways

    LeetCode 91. Decode Ways Solution1:我的答案 还是记录一下,最容易想到的是DFS,但是在第223/238个case上就超时了... class Solution { ...

  2. [LeetCode]91.Decode Ways

    题目 A message containing letters from A-Z is being encoded to numbers using the following mapping: 'A ...

  3. LeetCode 91. Decode Ways

    问题链接 LeetCode 91 题目解析 A~Z对应数字1~26,给出一段数字串,求破译方法数. 解题思路 动态规划.关键在于分类,定义 \(dp[i]\) 为前i个字符的解密方法数,初始化为0. ...

  4. leetcode 91. Decode Ways | 91. 解码方法(动态规划)

    题目 https://leetcode.com/problems/decode-ways/ 题解 dp 问题,首先用模拟的办法试一下,理清楚状态转移关系. 当走到 i 位置时,i 有两种选择: i 不 ...

  5. [dp] LeetCode 91. Decode Ways

    输入:一个字符串,只包含0-9的字符. 输出:解码种类 规则:有一种信息映射规则 A->1,B->2-Z->26. 例如输入'1',只能解码为A. 输入'12',可以解码为'AB', ...

  6. 【LeetCode】91. Decode Ways 解题报告(Python)

    [LeetCode]91. Decode Ways 解题报告(Python) 标签(空格分隔): LeetCode 作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fux ...

  7. 【重点!DP】LeetCode 639. Decode Ways II

    LeetCode 639. Decode Ways II 参考网址:https://zxi.mytechroad.com/blog/dynamic-programming/leetcode-639-d ...

  8. 91 Decode Ways

    91 Decode Ways dp解法 O(1) space class Solution:# @param {string} s# @return {integer}def numDecodings ...

  9. LeetCode 92 Decode Ways

    原文 A message containing letters from A-Z is being encoded to numbers the following mapping: 'A' -> ...

最新文章

  1. YOLO、SSD、FPN、Mask-RCNN检测模型对比
  2. xampp mysql5.6_xampp运行MySQL shutdown unexpectedly解决方案
  3. 【Android 安全】DEX 加密 ( Application 替换 | 分析 BroadcastReceiver 组件中调用 getApplication() 获取的 Application )
  4. JavaScript 复习之 Array 对象
  5. android渠道校验,Android渠道版本自动化校验
  6. C++面试题,平时面试不可缺少的!
  7. 贯穿时域与频域的方法——傅立叶分析
  8. Cisco思科交换机路由器命令快速入门
  9. 【附源码】计算机毕业设计SSM小区宠物管理系统
  10. android 混淆 minifyEnabled
  11. 关于bootbox.js自定义弹出框样式,如修改宽度等
  12. 一篇文章看懂自然语言处理——word表示技术的变迁(从bool模型到BERT)
  13. 面包板入门电子制作 学习笔记10
  14. 安卓iccid_A40i Android7.1 读取ICCID错误解决方案
  15. 芯片对蓝牙耳机影响有多大?南卡N2s发布,搭载高通3040芯片
  16. 区块链共识机制 和 经典分布式共识机制
  17. CAD完美转ArcGIS的操作方法技巧
  18. 【自动驾驶】鸽了很久的小物体目标检测代码【小物体目标检测】
  19. Microsoft Visual Studio Installer Projects下载缓慢下载不动的解决办法
  20. 免费的java外文文献,JAVA外文文献翻译[共18页].doc

热门文章

  1. Android (VTS) 的概念、作用及测试方法
  2. 计算机 继续教育培训心得体会,继续教育学习心得范文
  3. Java人力资源管理系统的设计与实现
  4. 暴风影音太恶心了 我用影音风暴
  5. 为创造者而生 Unite Beijing 2018大会回顾
  6. 【DIY火星毅力号火星车复制品】
  7. 你过来,我给你看个宝贝
  8. 电话主叫号码信息的识别及实现CID
  9. 微信备注加个b什么意思_一个人爱不爱你,他的微信备注会告诉你,不信你看!...
  10. 创业驶入3.0时代:门槛降低 人人皆可淘金