Ruby's Louvre

每天学习一点点算法

导航

leetcode 91. Decode Ways

function numDecodings(s) {
  if (!s.length || s.charAt(0) === '0') {
    return 0
  }
  var dp = new Array(s.length + 1).fill(0)
  dp[0] = 1;
  for (var i = 1; i < dp.length; i++) {
    dp[i] = (s.charAt(i - 1) == '0') ? 0 : dp[i - 1];
    if (i > 1 && (s.charAt(i - 2) == '1' || (s.charAt(i - 2) == '2' && s.charAt(i - 1) <= '6'))) {
      dp[i] += dp[i - 2];
    }
  }
  return dp[s.length];
}

posted on 2020-01-19 00:18  司徒正美  阅读(6615)  评论(78编辑  收藏  举报