题解 | 把数字翻译成字符串
把数字翻译成字符串
https://www.nowcoder.com/practice/046a55e6cd274cffb88fc32dba695668
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* 解码
* @param nums string字符串 数字串
* @return int整型
*/
public int solve (String nums) {
if (nums.length() == 0 || nums.charAt(0) == '0')
return 0;
int[] dp = new int[nums.length()];
dp[0] = 1;
for (int i = 1; i < dp.length; i++) {
if (nums.charAt(i) != '0') {
dp[i] = dp[i - 1];
}
// 3 2 4
int num = (nums.charAt(i - 1) - '0') * 10 + (nums.charAt(i) - '0');
if (num >= 10 && num <= 26) {
if (i == 1) {
dp[i] += 1;
} else {
dp[i] += dp[i - 2];
}
}
}
return dp[nums.length() - 1];
}
}
有点奇怪,用动态规划的方法来解决这道题目,怎么不考虑100等情况呢。原来它这里初始数组里面每个元素的值就是0,所以不用考虑了。
凡岛公司福利 495人发布
查看19道真题和解析