力扣 -- 91.解码方法

这篇具有很好参考价值的文章主要介绍了力扣 -- 91.解码方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

力扣 -- 91.解码方法,力扣动态规划,力扣经典面试题,leetcode,算法,职场和发展,c++,动态规划

题目链接:91. 解码方法 - 力扣(LeetCode) 

以下是用动态规划的思想解决这道题目,如果对动态规划五部曲的含义还不是很清楚的老铁可以看看本专栏的第一题动规(10条消息) 力扣 -- 746. 使用最小花费爬楼梯_KOBE 0824 BRYANT的博客-CSDN博客,这里有比较详细的解析动态规划五部曲的含义的,相信各位小伙伴都能看懂并且掌握这道题的。

力扣 -- 91.解码方法,力扣动态规划,力扣经典面试题,leetcode,算法,职场和发展,c++,动态规划

力扣 -- 91.解码方法,力扣动态规划,力扣经典面试题,leetcode,算法,职场和发展,c++,动态规划

力扣 -- 91.解码方法,力扣动态规划,力扣经典面试题,leetcode,算法,职场和发展,c++,动态规划

力扣 -- 91.解码方法,力扣动态规划,力扣经典面试题,leetcode,算法,职场和发展,c++,动态规划

参考代码:

class Solution {
public:
    int numDecodings(string s) {
        int n=s.size();
        //多开一个虚拟节点
        vector<int> dp(n+1);
        dp[0]=1;
        dp[1]=s[0]!='0';
        //如果s只有一个元素,那么应该直接返回
        if(n<2)
        {
            return dp[1];
        }
        //因为dp[0]和dp[1]已经填过了,所以从dp[2]开始填,因为多开了一个虚拟节点,所以应该填到dp[n]
        for(int i=2;i<=n;i++)
        {
            //这里写s[i-1]是调整了下标的映射关系,所有需要找s[i]的地方都要在原来的下标基础上减1
            //第一种情况
            if(s[i-1]!='0')
            {
                dp[i]+=dp[i-1];
            }
            int tmp=10*(s[i-2]-'0')+(s[i-1]-'0');
            //第二种情况
            if(tmp>=10&&tmp<=26)
            {
                dp[i]+=dp[i-2];
            }
        }
        return dp[n];
    }
};

以上就是分析这道dp题目的整个过程,虽然确实有点复杂,但是一步一步地分析,还是可以学明白的,加油,相信自己,动规是可以学会的。

你学会了吗?如果以上题解对你有所帮助,那么就点亮以下小心心呗,点点关注呗,后期还会持续更新动态规划的经典题目哦,我们下期见!!!!! 文章来源地址https://www.toymoban.com/news/detail-522550.html

到了这里,关于力扣 -- 91.解码方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 算法leetcode|91. 解码方法(rust重拳出击)

    一条包含字母 A-Z 的消息通过以下映射进行了 编码 : 要 解码 已编码的消息,所有数字必须基于上述映射的方法,反向映射回字母(可能有多种方法)。例如, \\\"11106\\\" 可以映射为: \\\"AAJF\\\" ,将消息分组为 (1 1 10 6) \\\"KJF\\\" ,将消息分组为 (11 10 6) 注意,消息不能分组为 (1 11 06) ,因

    2024年02月05日
    浏览(41)
  • LeetCode力扣 面试经典150题 详细题解 (1~5) 持续更新中

    目录 1.合并两个有序数组 2.移动元素  3.删除有序数组中的重复项  4.删除排序数组中的重复项 II 5.多数元素 暂时更新到这里,博主会持续更新的 题目(难度:简单): 给你两个按 非递减顺序 排列的整数数组  nums1   和  nums2 ,另有两个整数  m  和  n  ,分别表示  nu

    2024年02月19日
    浏览(42)
  • 算法学习——LeetCode力扣动态规划篇3(494. 目标和、474. 一和零、518. 零钱兑换 II)

    494. 目标和 - 力扣(LeetCode) 描述 给你一个非负整数数组 nums 和一个整数 target 。 向数组中的每个整数前添加 ‘+’ 或 ‘-’ ,然后串联起所有整数,可以构造一个 表达式 : 例如,nums = [2, 1] ,可以在 2 之前添加 ‘+’ ,在 1 之前添加 ‘-’ ,然后串联起来得到表达式 “

    2024年04月14日
    浏览(56)
  • 【leetcode刷题之路】面试经典150题(8)——位运算+数学+一维动态规划+多维动态规划

    20 位运算 20.1 【位运算】二进制求和 题目地址:https://leetcode.cn/problems/add-binary/description/?envType=study-plan-v2envId=top-interview-150   按位逆序运算。 20.2 【位运算】颠倒二进制位 题目地址:https://leetcode.cn/problems/reverse-bits/description/?envType=study-plan-v2envId=top-interview-150   详见代码

    2024年04月16日
    浏览(74)
  • 91. 解码方法

    递归法: 超时了 从字符串的后面向前计算,每一次递归都缩小子集 参考动态规划 : 从字符串的前面向后计算 感想: 这两种解法,刚好反映了,递归与动态规划的关系, 递归 n - n - 1- ... 0    - n - 2 ... 0 动态规划 0 -1-...n

    2024年02月12日
    浏览(48)
  • 【经典面试】87 字符串解码

    给定一个经过编码的字符串,返回它解码后的字符串。 编码规则为: k[encoded_string] ,表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。 你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。 此外,你

    2024年02月08日
    浏览(45)
  • 一维动态规划经典力扣题目(一)

    目录 题一:斐波那契数列 题目二:最低票价 题三:解码方法 递归方法是2的n次方的时间复杂度。 递归代码: 带有缓存的递归,会使时间复杂度得到大幅度优化。 时间复杂度为O(n)。 缓存即记录中间值         优化的方法:         代码:         代码:

    2024年02月21日
    浏览(41)
  • 力扣思维题/经典面试题——下一个排序

    https://leetcode.cn/problems/next-permutation/description/ 字节面试题,非常经典的逻辑思维题 1、找到第一个下降点,说明这个点可以 变得稍微大一点 以至于让整个排列变得更加大 为什么,仔细想想,后面都是倒序了怎么都不可能变得更加大了 2、下降点变成多大呢? 变成后面比它大的

    2024年02月04日
    浏览(41)
  • 【leetcode 力扣刷题】字符串匹配之经典的KMP!!!

    以下是能用KMP求解的算法题,KMP是用于字符串匹配的经典算法【至今没学懂………啊啊啊】 题目链接:28. 找出字符串中第一个匹配项的下标 题目内容: 题意还是很好理解的,要在字符串haystack中查找一个完整的needle,即字符串匹配。 暴力求解就是用 两层循环 :haystack从第

    2024年02月09日
    浏览(41)
  • 力扣动态规划专题(六)编辑距离与回文问题 步骤及C++实现

    步骤 确定dp数组以及下标的含义 dp[i][j] 表示以下标i-1为结尾的字符串s,和以下标j-1为结尾的字符串t,相同子序列的长度。判断s是否为t的子序列。即t的长度是大于等于s的 确定递推公式 和题1143一样,不同的是只有t可以删除元素,1143题两个字符串都可以删除元素 t中找到一

    2024年02月11日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包