代码拉取完成,页面将自动刷新
#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];
}
};
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。