题解 | 把数字翻译成字符串

把数字翻译成字符串

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];
    }
};

全部评论

相关推荐

牛客78682892...:直接点还好,总比要了简历也不回的强
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务