其他分享
首页 > 其他分享> > 剑指offer

剑指offer

作者:互联网

在这里插入图片描述

import java.util.*;


public class Solution {
    /**
     * 解码
     * @param nums string字符串 数字串
     * @return int整型
     */
    public int solve (String nums) {
        // write code here
        int[] dp = new int[nums.length() + 1];
        dp[0] = 1;
        dp[1] = nums.charAt(0) == '0' ? 0 : 1;
        for(int i = 2; i <= nums.length(); i++){
            dp[i] = nums.charAt(i-1)=='0' ? 0 : dp[i-1];
            if(nums.charAt(i-2) == '1' || (nums.charAt(i-2) =='2'  && nums.charAt(i-1) <= '6')){
                dp[i] += dp[i-2];
            }
        }
        
        return dp[nums.length()];
    }
}

能否加上dp[i-1]、dp[i-2]取决于分开的能否独立,所以需要重点关注0,和小于26的两位数。

标签:code,nums,int,offer,能否,public,dp
来源: https://blog.csdn.net/qq_39515350/article/details/121525676