【力扣刷题】解码方法

【力扣刷题】解码方法😎

😎博客昵称:博客小梦
😊最喜欢的座右铭:全神贯注的上吧!!!
😊作者简介:一名热爱C/C++,算法等技术、喜爱运动、热爱K歌、敢于追梦的小博主!
😘博主小留言:哈喽!😄各位CSDN的uu们,我是你的博客好友小梦,希望我的文章可以给您带来一定的帮助,话不多说,文章推上!欢迎大家在评论区唠嗑指正,觉得好的话别忘了一键三连哦!😘

前言🙌

哈喽各位友友们😊,我今天又学到了很多有趣的知识,现在迫不及待的想和大家分享一下!😘 都是精华内容,可不要错过哟!!!😍😍😍

91. 解码方法

题目链接: 解码方法

解题思路:

  • 本题采用的是动态规划的解法。首先构建根据状态表示构建一个dp数组,为了防止越界需要对dp【0】,dp【1】做初始化。根据状态表示和题目要求得出状态方程,最后将结果返回即可
  • 该解法的时间复杂度O(n),空间复杂度为O(n)。

解题源码分享:

cpp 复制代码
class Solution {
public:
    int numDecodings(string s) 
    {
        // //1.创建dp【】
        // int len = s.size();
        // vector<int> dp(len);//dp[i]:已i位置为结尾时,解码的总数
        // //初始化
        // dp[0] = s[0] != '0';
        // if(len == 1) return dp[0];
        // int t = (s[0] - '0') * 10 + s[1] - '0';
        // if(t >= 10 && t <= 26) dp[1] += 1;//两个结合编码成功
        // if(s[0] != '0' && s[1] != '0') dp[1] += 1;//单独编码成功

        // for(int i = 2; i < len; i++)
        // {
        //     //单独编码成功
        //     if(s[i] != '0') dp[i] += dp[i - 1];
        //     int t = (s[i - 1] - '0') * 10 + s[i] - '0';
        //     if(t >= 10 && t <= 26) dp[i] += dp[i - 2];//两个结合编码成功
        // }
        // return dp[len - 1];
        //1.创建dp【】
        int len = s.size();
        vector<int> dp(len + 1);//dp[i]:已i位置为结尾时,解码的总数
        //初始化
        dp[0] = 1;
        dp[1] = s[0] != '0' ;
        if(len == 1) return dp[1];
        for(int i = 2; i <= len; i++)
        {
            //单独编码成功
            if(s[i - 1] != '0') dp[i] += dp[i - 1];
            int t = (s[i - 2] - '0') * 10 + s[i - 1] - '0';
            if(t >= 10 && t <= 26) dp[i] += dp[i - 2];//两个结合编码成功
        }
        return dp[len];
    }
};

运行结果截图:

总结撒花💞

希望大家通过阅读此文有所收获!

😘如果我写的有什么不好之处,请在文章下方给出你宝贵的意见😊。如果觉得我写的好的话请点个赞赞和关注哦~😘😘😘

相关推荐
开开心心就好15 天前
内存清理软件灵活设置,自动阈值快捷键清
运维·服务器·windows·pdf·harmonyos·risc-v·1024程序员节
学传打活17 天前
【边打字.边学昆仑正义文化】_5_宇宙物种创造简史(1)
微信公众平台·1024程序员节·汉字·昆伦正义文化
xcLeigh18 天前
打破机房围墙:VMware+cpolar构建跨网络虚拟实验室
vmware·内网穿透·cpolar·实验室·远程访问·1024程序员节
开开心心就好19 天前
免费轻量电子书阅读器,多系统记笔记听书
linux·运维·服务器·安全·ddos·可信计算技术·1024程序员节
unable code20 天前
流量包取证-大流量分析
网络安全·ctf·misc·1024程序员节·流量包取证
开开心心就好20 天前
实用PDF擦除隐藏信息工具,空白处理需留意
运维·服务器·windows·pdf·迭代器模式·桥接模式·1024程序员节
unable code21 天前
浏览器取证-[GKCTF 2021]FireFox Forensics
网络安全·ctf·misc·1024程序员节·浏览器取证
unable code21 天前
内存取证-[安洵杯 2019]Attack
网络安全·ctf·misc·1024程序员节·内存取证
unable code22 天前
CTF-SPCS-Forensics
网络安全·ctf·misc·1024程序员节·取证