【力扣刷题】解码方法

【力扣刷题】解码方法😎

   
😎博客昵称:博客小梦
😊最喜欢的座右铭:全神贯注的上吧!!!
😊作者简介:一名热爱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];
    }
};

运行结果截图:

总结撒花💞

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

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

相关推荐
普通人61 天前
WebGL与WebGPU入门指南
开发语言·webgl·1024程序员节
猫猫不是喵喵.2 天前
从0到1创建一个微服务项目
java·数据库·微服务·1024程序员节
fish_zzzz5 天前
笔记-论数据结构2
1024程序员节
普通人66 天前
PHP文件读写完全指南
开发语言·php·1024程序员节
Martina_03216 天前
AI生成3D场景从白模换成精模后镜头全偏了?用6步检查单位、枢轴与层级替换
图像处理·人工智能·3d·ai·自然语言处理·材质·1024程序员节
星云_byto7 天前
CSS布局
人工智能·机器学习·目标跟踪·1024程序员节
张小姐的猫10 天前
【MySQL】访问 & 数据流动原理
android·数据库·mysql·adb·1024程序员节
工业HMI实战笔记11 天前
印刷电路板HMI:SMT贴装的元件定位界面
制造·设计规范·设计语言·1024程序员节
Martina_032111 天前
AI生成3D模型一合并网格,材质就串色?用6步检查材质槽、UV与图集重映射
图像处理·人工智能·3d·材质·uv·游戏策划·1024程序员节
橙光成长11 天前
android-ad-cleaner:android免 Root 批量关闭系统开屏与营销推送
android·1024程序员节