打卡群刷题总结0801——解码方法
时间:2022-07-22
本文章向大家介绍打卡群刷题总结0801——解码方法,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
题目:91. 解码方法
链接:https://leetcode-cn.com/problems/decode-ways
一条包含字母 A-Z 的消息通过以下方式进行了编码: 'A' -> 1 'B' -> 2 ... 'Z' -> 26 给定一个只包含数字的非空字符串,请计算解码方法的总数。 示例 1: 输入: "12" 输出: 2 解释: 它可以解码为 "AB"(1 2)或者 "L"(12)。 示例 2: 输入: "226" 输出: 3 解释: 它可以解码为 "BZ" (2 26), "VF" (22 6), 或者 "BBF" (2 2 6) 。
解题:
1、DP。
代码:
class Solution(object):
def numDecodings(self, s):
"""
:type s: str
:rtype: int
"""
if len(s) == 0:
return 0
if s[0] == '0':
return 0
# 00, 30, 40...90: return 0
# 10, 20: dp[i] = dp[i - 2]
# 27-99(exclude 30, 40, ...)): dp[i] = dp[i - 1]
# 1-26(exclude 10, 20): dp[i] = dp[i - 1] + dp[i - 2]
dp = [0] * (len(s) + 1)
dp[0] = 1
dp[1] = 1
for i in range(1, len(s)):
if s[i] == '0':
if s[i - 1] == '0' or s[i - 1] >= '3':
return 0
else:
dp[i + 1] = dp[i - 1]
elif s[i - 1] == '0' or s[i - 1] >= '3':
dp[i + 1] = dp[i]
elif s[i - 1] == '2' and s[i] >= '7':
dp[i + 1] = dp[i]
else:
dp[i + 1] = dp[i] +dp[i - 1]
print(dp)
return dp[-1]
PS:刷了打卡群的题,再刷另一道题,并且总结,确实耗费很多时间。如果时间不够,以后的更新会总结打卡群的题。
PPS:还是得日更呀,总结一下总是好的。
- 洛谷P3381 【模板】最小费用最大流(dijstra费用流)
- 使用OAuth打造webapi认证服务供自己的客户端使用(二)
- JavaScript基础1
- JavaScript实例-----反选
- 1303: [CQOI2009]中位数图
- 1050: [HAOI2006]旅行comf
- 某厂2016实习招聘安全技术试题答案及解析
- 3732: Network
- 洛谷P3388 【模板】割点(割顶)(tarjan求割点)
- 每天学一点Docker(3)(制作你的第一个容器)
- 1635: [Usaco2007 Jan]Tallest Cow 最高的牛
- 1653: [Usaco2006 Feb]Backward Digit Sums
- 1619: [Usaco2008 Nov]Guarding the Farm 保卫牧场
- 1682: [Usaco2005 Mar]Out of Hay 干草危机
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Netty组件之Channel注册
- 使用 kubeadm 安装单 master kubernetes 集群
- 垃圾回收算法(4)-复制算法
- Digital-Signature-Hijack:一款针对数字签名劫持的PowerShell脚本
- 使用TensorFlow物体检测模型、Python和OpenCV的社交距离检测器
- 基于OpenCV和Tensorflow的深蹲检测器
- BBPress未经身份验证的提权漏洞分析
- 开源日志管理系统Graylog之Sidecar功能实践
- CentOS-AltArch-7(ARM版)下源码编译MySQL5.7.31
- 用BurpSuit的Burpy插件搞定WEB端中的JS加密算法
- CentOS7下安装文档协作工具Confluence7.2.1
- caret包进行机器学习
- 容器化Go应用--基础镜像的未知时区问题
- 写给自己的Object和Function的3个灵魂拷问
- 48. Vue路由-使用命名视图实现经典布局