欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > Leetcode 91. 解码方法 动态规划

Leetcode 91. 解码方法 动态规划

2025/7/2 6:35:18 来源:https://blog.csdn.net/qq_45791939/article/details/124918044  浏览:    关键词:Leetcode 91. 解码方法 动态规划

原题链接:Leetcode 91. 解码方法
在这里插入图片描述
在这里插入图片描述
自己写的代码:

class Solution {
public:int numDecodings(string s) {int n=s.size();vector<int> dp(n,1);if(s[n-1]=='0') dp[n-1]=0;for(int i=n-2;i>=0;i--){if(s[i]!='0'){string t=s.substr(i,2);int tmp=atoi(t.c_str());if(tmp>=1&&tmp<=26) dp[i]=dp[i+1]+(i+2<n ? dp[i+2]:1);else dp[i]=dp[i+1];}else {if(i-1>=0 && (s[i-1]=='1' || s[i-1]=='2')){dp[i]=0;dp[i-1]=dp[i+1];i--;}else return 0;}}return dp[0];}
};

参考别人的代码:Leecode 91. 解码方法
在这里插入图片描述

class Solution {
public:int numDecodings(string s) {int n=s.size();if(s[0]=='0') return 0;int res=1,pre=1;for(int i=1;i<n;i++){int tmp=res;if(s[i]=='0'){if(s[i-1]=='1' || s[i-1]=='2') res=pre;else return 0;}else if(s[i-1]=='1' || (s[i-1]=='2' && s[i]>='1' && s[i]<='6'))res+=pre;pre=tmp;}return res;}
};

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词