题解 | 把数字翻译成字符串
把数字翻译成字符串
https://www.nowcoder.com/practice/046a55e6cd274cffb88fc32dba695668
#include <cctype>
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* 解码
* @param nums string字符串 数字串
* @return int整型
*/
//设dp表示前i个数字有多少种字符
//第i个字符,可以跟它前面的数字组成一个字符,这样dp[i]等于dp[i-2]
//也可以是它自己组成一个字符,这样dp[i]等于dp[i-1]
//综上,所以dp[i]根据是否能跟它前面的数字组成一个字符来决定它的值
//dp[i]依赖于前面的dp[i-1]和dp[i-2]
int solve(string nums) {
// write code here
int n=nums.size();
if(n==0||nums[0]=='0')
{
return 0;
}
vector<int> dp(n+1,0);
dp[0]=1;
dp[1]=1;
for(int i=2;i<=n;i++)
{
int temp=(nums[i-2]-'0')*10+(nums[i-1]-'0');
if(nums[i-1]!='0')
{
dp[i]=dp[i-1];
}
if(temp>=10&&temp<=26)
{
dp[i]+=dp[i-2];
}
}
return dp[n];
}
};

