leetCode-Record icon indicating copy to clipboard operation
leetCode-Record copied to clipboard

面试题46. 把数字翻译成字符串

Open fireairforce opened this issue 5 years ago • 0 comments

本质上其实也只是个dp

/**
 * @param {number} num
 * @return {number}
 */
var translateNum = function(num) {
  let str = num + ''
  let dp = Array(str.length + 1).fill(1)
  for (let i = 2; i <= str.length; i++) {
    if (
      (str[i - 1] <= '5' && '1' <= str[i - 2] && str[i - 2] <= '2') ||
      str[i - 2] === '1'
    ) {
    //   console.log(str[i], i)
      dp[i] = dp[i - 1] + dp[i - 2]
    } else {
      dp[i] = dp[i - 1]
    }
  }
  return dp[dp.length - 1]
}

// console.log(translateNum(624))
// console.log(translateNum(12258))
// console.log(translateNum(18580))
// console.log(translateNum(419605557))
// output : 4

fireairforce avatar Feb 29 '20 08:02 fireairforce