5 Star 0 Fork 0

李嘉/作业二

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
解码方法.cpp 883 Bytes
一键复制 编辑 原始数据 按行查看 历史
李嘉 提交于 2024-06-03 15:03 . Revert "删除文件 解码方法.cpp"
#include<iostream>
#include <string>
#include <vector>
using namespace std;
class Solution {
public:
bool judg(const string& s, int idx) {
if (idx - 1 <= 0 || s[idx - 1] >= '3' || s[idx - 1] == '0' ||
(s[idx - 1] == '2' && s[idx] >= '7'))
return false;
return true;
}
int numDecodings(string s) {
s = "0" + s;
if (s[1] == '0') return 0;
int n = s.size();
vector<int> dp(n, 0);
dp[0] = dp[1] = 1;
for (int i = 2; i < n; ++i)
{
if (s[i] == '0')
{
if (judg(s, i)) dp[i] = dp[i - 2];
else return 0;
}
else // s[i] > '0'
{
if (judg(s, i)) dp[i] = dp[i - 1] + dp[i - 2];
else dp[i] = dp[i - 1];
}
}
return dp[n - 1];
}
};
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/li-jia0706/assignment.git
git@gitee.com:li-jia0706/assignment.git
li-jia0706
assignment
作业二
master

搜索帮助