91. Decode Ways

作者: 沉睡至夏 | 来源:发表于2016-12-23 04:45 被阅读3次

这道题和普通的DP题不太一样,用的是top-down的方法。
也就是从n开始,而不是从0开始建表。
注意dp[ ]的size,比string s多1。
base case :dp[n] = 1; dp[n-1] = 0 or 1;
时间O(n),空间也是O(n);

public class Solution {
    public int numDecodings(String s) {
        if(s == null || s.length()==0)  return 0;
        int n = s.length();
        
        int dp[] = new int[n+1];
        dp[n] = 1;
        dp[n-1] = s.charAt(n-1)=='0'? 0:1;
        
        for(int i=n-2; i>=0; i--) {
            if(s.charAt(i) != '0')
                dp[i] = (Integer.parseInt(s.substring(i,i+2)) <= 26) ? dp[i+1] + dp[i+2] : dp[i+1];
        }
        return dp[0];
    }
}

相关文章

  • 91. Decode Ways

    91. Decode Ways 题目:https://leetcode.com/problems/decode-w...

  • LeetCode 91-95

    91. Decode Ways[https://leetcode-cn.com/problems/decode-w...

  • 91. Decode Ways -Python-Leetcode

    91. Decode Ways A message containing letters from A-Z is ...

  • 91. Decode Ways

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

  • 91. Decode Ways

    题目: A message containing letters from A-Z is being encode...

  • 91. Decode Ways

  • 91. Decode Ways

    这道题和普通的DP题不太一样,用的是top-down的方法。也就是从n开始,而不是从0开始建表。注意dp[ ]的s...

  • 91. Decode Ways

    动态规划问题创建一个长度为n+1的数组来储存子问题的结果.状态转移方程:dp[i] =dp[i-1]当s[i] !...

  • 91. Decode Ways

    A message containing letters from A-Z is being encoded to...

  • 91. Decode Ways

    为什么我常常对做题产生恐惧,因为可能为了一个不算难的问题不知不觉绕进去2个小时,这显然是不值得的。这题就是如此。 ...

网友评论

    本文标题:91. Decode Ways

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