LeetCode第91题(解码方法)

该博客详细介绍了LeetCode第91题的解题思路,重点在于如何将数字序列解码为字母。文章指出解码时需注意不能以0开头,中间的0需与前一个数字组合,且组合后的数字需小于等于26。解题策略是从后往前遍历,用两个变量记录解码方法的数量,并提供了代码实现。
摘要由CSDN通过智能技术生成

原题如下:

一条包含字母 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).s的首部不能是0!!
2).中间部分可以是0但是 它的前面那个数字必须是1 或者2(以上两点需要在开始计算前 先遍历一遍)
3).计算过程中如果遇到0怎么办???(我们需要把这个0与他前面那个数字x(如果步骤1和步骤2做过了 只可能是1或者2)绑定在一起 )
4).绑定的那个 x不能再与(x之前那个数字组合在一起 假设前面那个数字存在的话) ps:::比如 1220 (“20”是要在一起的 同时22虽然我们可以解码出来一个字符 但是 20已经被绑住一起了!!!)
5).对于 一个串 s 他的解码个数是不是直接由 (前面s.size()-1 个推倒出来 的 比如s=123 假设我已经知道 “23”的解码个数为k 能否直接推倒 出 “123”的个数)??&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值