题目:力扣165,https://leetcode.cn/problems/ba-shu-zi-fan-yi-cheng-zi-fu-chuan-lcof/description/
现有一串神秘的密文 ciphertext,经调查,密文的特点和规则如下:
密文由非负整数组成
数字 0-25 分别对应字母 a-z
请根据上述规则将密文 ciphertext 解密为字母,并返回共有多少种解密结果。
思路:
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];
}
}