LeetCode #91 - Decode Ways

Inkscape+Fritzing制作异形PCB:从矢量图形到可制造电路板 PCB设计是电子工程的基础,其核心在于将电路原理转化为可制造的物理布局。传统EDA软件通常提供标准矩形板框,限制了创意产品的形态表达。通过结合矢量图形软件与直观的电路设计工具,工程师和爱好者能够突破形状限制,实现高度个性化的电路板设计。这种方法利用矢量图形精确的数学描述,确保轮廓数据的光滑与准确,满足光绘机等生产设备的精度要求。在快速原型开发、艺术装置、可穿戴设备和教育演示等场景中,自定义形状PCB能更好地匹配产品外观,提升用户体验与品牌识别度。本文以Inkscape和Fritzing为例,详细解析了如何通 阅读详情

题目描述:

A message containing letters from A-Z is being encoded to numbers using 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.

这道题与climbing stairs类似,但是考虑的情况很多。运用动态规划,加入某一字符s[i]之后所有可行的编码方法数为dp[i],那么s[i]和s[i-1]的取值情况有五种:①00、30、40....90,这种情况下不可能解码,返回0;②10、20,那么s[i]和s[i-1]必须连在一起表示一个字母,所以dp[i]=dp[i-2];③01、02、03.......09,那么s[i]必须单独表示一个字母,s[i-1]必须与s[i-2]一起表示一个字母,所以dp[i]=dp[i-1];④27-99,那么s[i]必须单独表示一个字母,所以dp[i]=dp[i-1];⑤11-19、21-26,s[i]和s[i-1]可以连在一起表示一个字母,也可以分开表示两个字母,所以dp[i]=dp[i-1]+dp[i-2]。同时要注意动态规划从i=2开始,所以先要初始化dp[0]和dp[1]。

根据所列举的范围可以把所有可能的编码情况都考虑进去。

class Solution {
public:
    int numDecodings(string s) {
        if(s.empty()) return 0;
        else if(s.size()==1)
        {
            if(s[0]=='0') return 0;
            else return 1; 
        }
        else if(s.size()>=2)
        {
            int dp[s.size()]={};
            dp[0]=1;
            if(range(s[0],s[1])==0) return 0;
            if(range(s[0],s[1])==1) dp[1]=1;
            if(range(s[0],s[1])==2) return 0;
            if(range(s[0],s[1])==3) dp[1]=1;
            if(range(s[0],s[1])==4) dp[1]=2;
            
            for(int i=2;i<s.size();i++)
            {
                if(range(s[i-1],s[i])==0) return 0;
                if(range(s[i-1],s[i])==1) dp[i]=dp[i-2];
                if(range(s[i-1],s[i])==2) dp[i]=dp[i-1];
                if(range(s[i-1],s[i])==3) dp[i]=dp[i-1];
                if(range(s[i-1],s[i])==4) dp[i]=dp[i-1]+dp[i-2];
            }
            return dp[s.size()-1];
        }
    }
    int range(char a,char b)
    {
        int n=10*(a-'0')+b-'0';
        if(n==0||(n%10==0&&n>20)) return 0;
        else if(n==10||n==20) return 1;
        else if(n<10) return 2;
        else if(n>26) return 3;
        else return 4;
    }
};

一篇文章带你搞定数学建模里的主成分分析(05年水质问题示例应用讲解含代码) 文章目录一、题目分析二、原理公式三、MATLAB实现某一地区的主成分分析四、MATLAB 实现所有地区28个月的综合分析五、注意 一、题目分析 对长江近两年多的水质情况做出定量的综合评价,并分析各地区水质的污染状况 考虑到各指标之间可能存在一定的相关性,选用主成分分析法对长江流域主要城市水质检测报告进行分析,选取主成分,并把主成分得分按照方差贡献率加权求和,得到每个地区的污染综合评价指数,进而可以计算每个月长江流域的污染综合评价指数,对平均综合评价指数进行排序 二、原理公式 根据主成分分析的方法,分析长江沿 阅读详情

相关推荐

法兰克仿真软件FANUC CNC Guide v25.0 安装教程及中文设置

下载地址在文末。我们公司用新到一批FANUC 系统的设备,为方便使用就装了一个 FANUC 数控系统仿真软件FANUC CNC Guide v25.0 ,还是最新版不是市面上流传的老版本。模拟学习一下。

hakesashou的博客 1万+

Leetcode 91. Decode Ways

91. Decode Ways A message containing letters from A-Z is being encoded to numbers using the following mapping: 'A' -> 1 'B' -> 2 ... 'Z' -> 26 Given an encoded message containing digits, det

wyj925458224的博客 295

【Unity3D】RTS Engine 笔记一

RTS Engine 中配置一个新场景, 初步认识GameManager、设置地形以及配置地形网格搜索

ViYeye的博客 1648

DP问题:leetcode(91) Decode Ways

问题描述: A message containing letters from A-Z is being encoded to numbers using the following mapping: 'A' -> 1 'B' -> 2 ... 'Z' -> 26 Given an encoded message containing digits, determine the

u014514939的博客 257

MATLAB与STK互联23:卫星对象操作(14)—仿真分析案例1,建立8个地面站,分析对卫星的可见性

学习到这里,我们有必要做个仿真分析案例,把之前我们学习的零散知识点串起来,看一下在真实的分析中怎么应用。 分析要求:建立8个地面站,分析每个地面站对某个轨道高度500km、倾角60°圆轨道的卫星,1天内的可见次数、可见弧长以及可见弧段间隔列表。 基本约束:地面站仰角8°~90°,作用距离<2000km,太阳矢量与地面站到卫星视线夹角不小于15°,可见弧段应大于30s。地面站站址可随机生成,但要求在南北纬50°范围内。 下面上代码: uiap = actxserver(‘STK11.application’)

ltylty001的博客 7490

微磁模拟实战指南:从OOMMF安装到首个3D模型运行

本文详细介绍了OOMMF微磁模拟软件的安装与使用,从环境配置到首个3D模型运行的完整教程。涵盖Windows、Linux和macOS平台的安装避坑指南,以及MIF文件编写、并行计算优化等实战技巧,帮助研究人员快速掌握这一开源工具在磁畴壁运动、磁滞回线等微磁学问题中的应用。

weixin_29294597的博客 153

91. Decode Ways, leetcode

题目: A message containing letters from A-Z is being encoded to numbers using the following mapping: 'A' -> 1 'B' -> 2 ... 'Z' -> 26 Given an encoded message containing digits, determine the

记录点滴 481

FDTD仿真实战:从材料导入到反射率曲线分析

本文提供了一份完整的FDTD仿真实战指南,详细讲解了从自定义材料(如WO3)数据导入、结构建模、仿真区域与网格设置,到光源与监视器配置、运行仿真并提取反射率数据的全流程。重点解决了材料库缺失、网格优化、边界条件设置等常见难题,旨在帮助研究人员高效、准确地通过FDTD仿真获取材料的关键光学特性——反射率曲线。

elastic6hunter的博客 341

LeetCode题解:Decode Ways

A message containing letters from A-Z is being encoded to numbers using the following mapping:‘A’ -> 1 ‘B’ -> 2 … ‘Z’ -> 26 Given an encoded message containing digits, determine the total number of

追风筝的吃货,汪~ 1829

ue 打包linux程序 在windows系统 2026

ue 打包linux程序 在windows系统 2026

jacke121的专栏 370

华为OD机试 - 整型数组按照个位数排序(Python/JS/C/C++ 双机位C卷 100分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。给定一个非空数组(列表),其元素数据类型为整型,请按照数组元素十进制最低位从小到大进行排序,十进制最低位相同的元素,相对位置保持不变。当数组元素为负值时,十进制最低位等同于去除符号位后对应十进制值最低位。给定一个非空数组,其元素数据类型为32位有

学Java,找哪吒 398

[leetcode] 92.Decode Ways

题目: A message containing letters from A-Z is being encoded to numbers using the following mapping:‘A’ -> 1 ‘B’ -> 2 … ‘Z’ -> 26 Given an encoded message containing digits, determine the total numb

u014673347的专栏 447

手把手教你学veriolg(二十六)-- Verilog CIC 滤波器设计

目录 Verilog CIC 滤波器设计1. CIC 滤波器的基本原理2. Verilog 实现3. 说明4. 测试激励5. 总结 CIC(Cascade-Integrator-Comb)滤波器是一种特殊的数字滤波器,常用于多速率信号处理中,尤其是用于信号的上采样(插值)和下采样(抽取)。CIC 滤波器的特点在于它具有简单的硬件实现、不需要乘法器(仅使用加法器和延迟元件)、且具有线性相位特性。然而,CIC 滤波器的缺点是它会产生较大的量化误差,因此在设计时需要特别注意字长的选择以避免溢出。1. CIC 滤波

MHD0815的博客 888

【LeetCode】#91解码方法(Decode Ways)

【LeetCode】#91解码方法(Decode Ways) 题目描述 一条包含字母 A-Z 的消息通过以下方式进行了编码: ‘A’ -&gt; 1 ‘B’ -&gt; 2 … ‘Z’ -&gt; 26 给定一个只包含数字的非空字符串,请计算解码方法的总数。 示例 示例 1: 输入: “12” 输出: 2 解释: 它可以解码为 “AB”(1 2)或者 “L”(12)。 示例 2: 输入: “226...

weixin_43858604的博客 200

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Leetcode #91 Decode Ways

A message containing letters from A-Z is being encoded to numbers using the following mapping: 'A' -> 1 'B' -> 2 ... 'Z' -> 26 Given an encoded message containing digits, determine the total nu

每天都要有进步 263

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

【一天一道LeetCode】#91. Decode Ways

一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder‘s Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 A message containing letters from A-Z is being encoded to numbers using the following mapping:

ZeeCoder 1302

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

算法设计Week14 LeetCode Algorithms Problem #91 Decode Ways

题目描述: A message containing letters from A-Z is being encoded to numbers using the following mapping: ‘A’ -> 1 ‘B’ -> 2 … ‘Z’ -> 26 Given an encoded message containing digits, determi

锦心的专栏 282

LeetCode 91. Decode Ways 题解

本题是动态规划的经典应用,与爬楼梯问题类似,但增加了更多的约束条件。状态定义:dp[i] 表示前 i 个字符的解码方法数状态转移:考虑单独解码和组合解码两种情况边界条件:'0' 不能单独解码,也不能作为组合的开头通过本题可以深入理解带约束条件的动态规划问题。

cannonjinx的博客 1149

Leetcode 91. Decode Ways (python+cpp)

Leetcode 91. Decode Ways题目解法1:recursion + memorization解法2:动态规划 题目 解法1:recursion + memorization 这种方法是leetcode官方提供的一种,说实话我觉着理解起来不是那么直观,所以这边不多做解释 python代码如下: class Solution: def numDecodings(self, s: str) -> int: # recursion with memorization

qq_37821701的博客 238

LeetCode(91):解码方法 Decode Ways(Java)

2019.6.12 #程序员笔试必备# LeetCode 从零单刷个人笔记整理(持续更新) 和之前刷的零钱兑换很像,底层是个01背包问题:物品有两种规格,要么一个数字,要么满足要求的两个数字。运用标准的动态规划即可: 建立动态规划数组dp,dp[i]用于记录字符串至第i-1位前的解码方法的总数。依次扫描数字,当前数字不为0时,dp[i]+=dp[i-1]表示当前组合数量包括前一位数字前的组合总数...

NJU_ChopinXBP的博客 710

Leetcode [91]: Decode ways

91.Decode Ways dfs way: class Solution(object): def numDecodings(self, s): """ :type s: str :rtype: int """ out=[] self.ret=0 def h...

只为分享 169

[LeedCode OJ]#91 Decode Ways

【 声明:版权所有,转载请标明出处,请勿用于商业用途。  联系信箱:libin493073668@sina.com】 题目链接:https://leetcode.com/problems/decode-ways/ 题意: 字母A~Z分别用数字1~26表示,现在给定一个数字串,问能够有几种字母表示方法 思路: 首先,dp[i]表示到底i位有几种表示方法 然后我

月下的寂寞肖邦 500

LeetCode 91 Decode Ways (Python详解及实现)

【题目】 Amessage containing letters from A-Z is being encoded to numbers using thefollowing mapping:   'A'-> 1 'B'-> 2 ... 'Z'-> 26 Given anencoded message containing digits, determine the total n

toplatona 2603

leetcode 91 decode ways python DP

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录题目一、动态规划解析二、代码 题目 一条包含字母 A-Z 的消息通过以下映射进行了 编码 : ‘A’ -> 1 ‘B’ -> 2 … ‘Z’ -> 26 要 解码 已编码的消息,所有数字必须基于上述映射的方法,反向映射回字母(可能有多种方法)。例如,“111” 可以将 “1” 中的每个 “1” 映射为 “A” ,从而得到 “AAA” ,或者可以将 “11” 和 “1”(分别为 “K” 和 “A” )映射为 “KA

m0_50233720的博客 216

[leetcode] 91. Decode Ways @ python

原题 A message containing letters from A-Z is being encoded to numbers using the following mapping: ‘A’ -&amp;gt; 1 ‘B’ -&amp;gt; 2 … ‘Z’ -&amp;gt; 26 Given a non-empty string containing only digits, determine the ...

闲庭信步 273

LeetCode 91. Decode Ways

描述 A message containing letters from A-Z is being encoded to numbers using the following mapping: 'A' -&gt; 1 'B' -&gt; 2 ... 'Z' -&gt; 26 Given an encoded message containing digits, determine ...

取法于道的博客 309
上一篇: LeetCode #70 - Climbing Stairs
下一篇: LeetCode #96 - Unique Binary Search Trees
LawFile
博客等级 码龄10年 5粉丝 627原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值