栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

力扣每日一题2021-09-27解码方法II

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

力扣每日一题2021-09-27解码方法II

题目描述

解码方法II

思路 动态规划

使用dp[0]表示以上个字符作为结尾的方案数 dp[1]表示以当前字符作为结尾的方案数。
于是有nxt_dp[0] dp[1] 而nxt_dp[1]由上个字符结尾方案数 * 当前字符单独解码方案数 上上个字符结尾方案数 * 上个字符与当前字符组合的方案数。
初始化的时候 由于上个字符为空 因此方案数为1 求解当前字符解码方案数即可。
定义一个字典枚举组合 如果方案不出现在字典枚举的组合中 则视为该方案不存在。

class Solution:
 one { 1 : 1, 2 : 1, 3 : 1, 4 : 1, 5 : 1, 6 : 1, 7 : 1, 8 : 1, 9 : 1, * : 9}
 two { 10 : 1, 11 : 1, 12 : 1, 13 : 1, 14 : 1, 15 : 1, 16 : 1, 17 : 1, 18 : 1,
 19 : 1, 20 : 1, 21 : 1, 22 : 1, 23 : 1, 24 : 1, 25 : 1, 26 : 1, *0 : 2,
 *1 : 2, *2 : 2, *3 : 2, *4 : 2, *5 : 2, *6 : 2, *7 : 1, *8 : 1, *9 : 1,
 1* : 9, 2* : 6, ** : 15}
 Mod 10**9 7
 def numDecodings(self, s: str) - int:
 dp 1, self.one.get(s[:1], 0)
 for i in range(1, len(s)):
 dp dp[1], (self.one.get(s[i], 0) * dp[1] self.two.get(s[i-1: i 1], 0) * dp[0]) % self.Mod
 return dp[-1]
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/267752.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号