美文网首页
【leetcode】No.91:decode-ways

【leetcode】No.91:decode-ways

作者: I讨厌鬼I | 来源:发表于2019-08-26 20:08 被阅读0次

题目描述

一条仅包含字母‘A’-‘Z’的消息用下列的方式加密成数字

'A' -> 1
'B' -> 2
 ...
'Z' -> 26

现在给出加密成数字的密文,请判断有多少种解密的方法
例如:
给出的密文为“12”,可以解密为"AB"(1 2) 或者"L"(12).
所以密文"12"的解密方法是2种.

思路:

dp[i]表示前i个字符可以编码的情况总数,dp[0]=1,如果当前第i位能与i-1位组合成一个10~26的数字,则dp[i]=dp[i-1]+dp[i-2],否则dp[i]=dp[i-1],注意两个特殊点:
如果当前位为0,则只能和前面组合,如果不能组合,则无法解密
如果第一位就为0,直接返回0即可

代码:

public class Solution {
    public int numDecodings(String s) {
        if (s.isEmpty()) return 0;
        char[] str = s.toCharArray();
        int len = s.length();
        int[] dp = new int[len+1];
        dp[0]=1;
        dp[1] = str[0]=='0'?0:1;
        for (int i=1; i<len; i++){
            int value = (str[i-1]-'0')*10+(str[i]-'0');
            if (str[i]-'0'==0){
                if (value<=26&&value>=10) dp[i+1]=dp[i-1];
                else return 0;
            }
            else{
                if (value<=26&&value>=10) dp[i+1] = dp[i-1] + dp[i];
                else dp[i+1] = dp[i];
            }
        }
        return dp[len];
    }
}

相关文章

  • 【leetcode】No.91:decode-ways

    题目描述 一条仅包含字母‘A’-‘Z’的消息用下列的方式加密成数字 现在给出加密成数字的密文,请判断有多少种解密的...

  • 91. Decode Ways

    https://leetcode.com/problems/decode-ways/description/ 解题...

  • Leetcode 91. Decode Ways

    原题地址 https://leetcode.com/problems/decode-ways/descriptio...

  • 0091. 解码方法

    题目地址 https://leetcode-cn.com/problems/decode-ways/[https:...

  • Day4 Leetcode91 解码方法

    题目 解码方法[https://leetcode-cn.com/problems/decode-ways/]非常明...

  • [刷题防痴呆] 0091 - 解码方法 (Decode Ways

    题目地址 https://leetcode.com/problems/decode-ways/[https://l...

  • 91.解码方法

    原题 https://leetcode-cn.com/problems/decode-ways/ 解题思路 动态规...

  • decode-ways

    设定状态为:f[i]表示s从0开始,长度为i的子串的解码方式数量,于是我们最终要求的答案便是f[n]。 那么如何求...

  • 『No.91』

    闲时对话 女儿:如果你在世界上没有一个亲人了,你会继续活下去吗? 我:会。我会交朋友。 女儿:如果没有人跟你做朋友...

  • 0725 No.91

    原句:泥屋像是刚打下的粮食,黄鲜鲜的耀眼。横竖小格的一扇窗,正中一小块玻璃。窗纸还没有酥,这高原上暴雨时节未到,窗...

网友评论

      本文标题:【leetcode】No.91:decode-ways

      本文链接:https://www.haomeiwen.com/subject/bcadectx.html