【done】剑指offer46_new:解密数字

题目:力扣165,https://leetcode.cn/problems/ba-shu-zi-fan-yi-cheng-zi-fu-chuan-lcof/description/
现有一串神秘的密文 ciphertext,经调查,密文的特点和规则如下:
密文由非负整数组成
数字 0-25 分别对应字母 a-z
请根据上述规则将密文 ciphertext 解密为字母,并返回共有多少种解密结果。
思路:
【done】剑指offer46_new:解密数字_第1张图片

class Solution {
    public int crackNumber(int ciphertext) {
        String numStr = String.valueOf(ciphertext);
        int n = numStr.length();
        int dp[] = new int[n + 1]; // dp[n]表示前n个数字的解密方法数量
        dp[0] = 1;
        dp[1] = 1;
        for (int i = 2; i <= n; ++i) {
            int num1 = numStr.charAt(i - 2) - '0';
            int num2 = numStr.charAt(i - 1) - '0';
            int tmpVal = 10 * num1 + num2;
            if (tmpVal >= 10 && tmpVal <= 25) {
                dp[i] = dp[i - 1] + dp[i -2];
            } else {
                dp[i] = dp[i - 1];
            }
        }

        return dp[n];
    }
}

你可能感兴趣的:(剑指offer题目笔记,动态规划,dp)