【力扣刷题】解码方法

【力扣刷题】解码方法😎

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

运行结果截图:

总结撒花💞

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

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

相关推荐
fangzhanpeng1685 天前
快速掌握C#语言基础知识点(1.基础数据类型)
开发语言·c#·1024程序员节
无己心7 天前
面向多平台 AI 搜索引擎的适配层架构设计
前端·人工智能·搜索引擎·ai·1024程序员节
u01030552713 天前
AI驱动的安卓UI自动生成功能实现
人工智能·1024程序员节
u01030552714 天前
长株潭智能体赋能腾讯元器链接共享
1024程序员节
云贝贝贝15 天前
OceanBase认证体系介绍与备考指南
运维·服务器·oceanbase·1024程序员节
u01030552715 天前
Java图像处理实战指南
人工智能·1024程序员节
u01030552716 天前
Java AWT鼠标事件全解析
人工智能·1024程序员节
u01030552718 天前
Java实用类应用精讲
人工智能·1024程序员节
u01030552718 天前
Java I/O核心操作实战
人工智能·1024程序员节
u01030552719 天前
ArrayList操作详解与实战应用
人工智能·1024程序员节