639. 解码方法 2
一条包含字母 A-Z
的消息通过以下的方式进行了编码:
'A' -> 1 'B' -> 2 ... 'Z' -> 26
除了上述的条件以外,现在加密字符串可以包含字符 '*'了,字符'*'可以被当做1到9当中的任意一个数字。
给定一条包含数字和字符'*'的加密信息,请确定解码方法的总数。
同时,由于结果值可能会相当的大,所以你应当对109 + 7取模。(翻译者标注:此处取模主要是为了防止溢出)
示例 1 :
输入: "*" 输出: 9 解释: 加密的信息可以被解密为: "A", "B", "C", "D", "E", "F", "G", "H", "I".
示例 2 :
输入: "1*" 输出: 9 + 9 = 18(翻译者标注:这里1*可以分解为1,* 或者当做1*来处理,所以结果是9+9=18)
说明 :
- 输入的字符串长度范围是 [1, 105]。
- 输入的字符串只会包含字符 '*' 和 数字'0' - '9'。
class Solution {
public:
int numDecodings(string s) {
long e0 = 1, e1 = 0, e2 = 0, f0 = 0, M = 1e9 + 7;
for (char c : s) {
if (c == '*') {
f0 = 9 * e0 + 9 * e1 + 6 * e2;
e1 = e0;
e2 = e0;
} else {
f0 = (c > '0') * e0 + e1 + (c <= '6') * e2;
e1 = (c == '1') * e0;
e2 = (c == '2') * e0;
}
e0 = f0 % M;
}
return e0;
}
};
639. 解码方法 2相关推荐
- 639. 解码方法 II
639. 解码方法 II 一条包含字母 A-Z 的消息通过以下的方式进行了编码: 'A' -> 1 'B' -> 2 ... 'Z' -> 26 要 解码 一条已编码的消息,所有的数 ...
- LeetCode 371. 两整数之和(异或操作) / 639. 解码方法 II(动态规划)/ 437. 路径总和 III
371. 两整数之和 2021.9.26 每日一题 题目描述 给你两个整数 a 和 b ,不使用 运算符 + 和 - ,计算并返回两整数之和. 示例 1: 输入:a = 1, b = 2 ...
- 125. Leetcode 91. 解码方法 (动态规划- 字符串系列)
步骤一.确定状态: 确定dp数组及下标含义 dp[i]表示的是到i这个位置的字符串的解码方法 步骤二.推断状态方程: dp[i]的推导会取决于当前s[i]的字符情况以及前一位字符,具体如下: 如果当前 ...
- Leetcode 91. 解码方法 (每日一题 20211013)
一条包含字母 A-Z 的消息通过以下映射进行了 编码 :'A' -> 1 'B' -> 2 ... 'Z' -> 26 要 解码 已编码的消息,所有数字必须基于上述映射的方法,反向映 ...
- LeetCode 90子集Ⅱ91解码方法
微信搜一搜:bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注回复进群即可加入力扣打卡群,欢迎 ...
- 曼彻斯特解密_曼彻斯特编码解码方法与流程
本发明涉及一种曼彻斯特编码解码方法,属于集成电路技术领域. 背景技术: RFID在电子领域被广泛采用,解125KHz RFID编码可以通过专用芯片或者单片机软件来解决.使用专用芯片会增加硬件复杂度,增 ...
- 力扣--91. 解码方法
力扣–91. 解码方法 文章目录 力扣--91. 解码方法 一.题目描述 二.解题思路 三.代码 一.题目描述 一条包含字母 A-Z 的消息通过以下方式进行了编码: 'A' -> 1 'B' - ...
- leetcode91. 解码方法
一条包含字母 A-Z 的消息通过以下方式进行了编码: 'A' -> 1 'B' -> 2 - 'Z' -> 26 给定一个只包含数字的非空字符串,请计算解码方法的总数. 示例 1: ...
- LeetCode 91. 解码方法(动态规划)
1. 题目 一条包含字母 A-Z 的消息通过以下方式进行了编码: 'A' -> 1 'B' -> 2 ... 'Z' -> 26 给定一个只包含数字的非空字符串,请计算解码方法的总数 ...
- Leetcode--91. 解码方法
一条包含字母 A-Z 的消息通过以下方式进行了编码: 'A' -> 1 'B' -> 2 ... 'Z' -> 26 给定一个只包含数字的非空字符串,请计算解码方法的总数. 示例 1 ...
最新文章
- BC25通过LWM2M连接电信AEP(ctwing)
- CPU缓存与CPU性能的关系
- 高级php程序员面试题2019,2019最新PHP模拟面试题及答案
- 24行代码-Leecode 2063. 所有子字符串中的元音——Leecode周赛系列
- 中小企业邮件系统选型攻略
- C#中的ForEach
- php sqlsrv 分页,Php+SqlServer如何实现分页显示
- Java——网络编程三要素
- linux登录后自动打开终端,linux登录信息/打开终端信息
- 【实习生面试】阿里前端实习生一面流程及题目
- 使用Kubuntu运行命令对话框(Alt + F2)
- android win7 共享网络打印机,详解win7共享打印机如何设置
- layui模板引擎嵌套
- Android中应用分包的方法(Apk Splits)
- 为什么算法这么难???
- 第三章 培养工作兴趣
- nginx部署、配置优化
- c语言 Linux CURL发送Http get请求 带参数
- 手把手教你打造全宇宙最强 Firefox 浏览器
- “Why Should I Trust you ?”Explaining the Predictions of Any Classififier.-对分类预测进行解释
热门文章
- 实现对span标签的多选单选功能_如何在Notion中做多级标签?-Notion102
- TextBox的OnTextboxChanged事件里对Text重新赋值带中文, 导致崩溃
- 测试C++代码与WebBrowser HTML的互动
- Node.js开发指南中的例子(mysql版)
- 因为机遇,不会轻易悲伤
- Objective-C 基础,类和对象,方法和消息,已声明的属性和存取方法,块对象,协议和范畴类,预定义类型和编码策略...
- Http Status Code (http 状态号)
- SpringBoot动漫弹幕网站 cartoon.liuyanzhao.com
- catv系统主要有哪三部分组成_光纤通信系统的组成与特点
- lpop 原子_从夸克到原子,到元素周期表