力扣——91——解码方法

力扣——91——解码方法,第1张

力扣——91——解码方法

题意

 题解:

动态规划

class Solution {
    public int numDecodings(String s) {
        // 解码 方法的 总数
        int n=s.length();
        int[] dp=new int[n+1];//、初始值为0
        dp[0]=1;

        for(int i=1;i<=n;i++){//n要寻找边界初始值 所以设置为1
            if(s.charAt(i-1)!='0'){
                dp[i]+=dp[i-1];
            }
            if((i-2)>=0 && s.charAt(i-2)!='0' &&( ( (Integer.valueOf(s.charAt(i-1))-48) +((Integer.valueOf(s.charAt(i-2))-48 )*10) )<=26)){
                //当  i  和 i+1 为十几  二十几时成立
                dp[i]+=dp[i-2];
            }

        }
        // Integer.valueOf(s.charAt(i-1))-48+(Integer.valueOf(s.charAt(i-2))-48)*10 )<=26
        //( (s.charAt(i-2)-'0') * 10+ (s.charAt(i-1)-'0') <= 26)
        return dp[n];

    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5695558.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存