From f199f1fc3a2c6f8d12f289a328dd7c040e89ad31 Mon Sep 17 00:00:00 2001 From: BangDori Date: Thu, 9 Jan 2025 21:38:07 +0900 Subject: [PATCH] [Leetcode - Medium] Decode Ways --- bangdori/Decode Ways.js | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 bangdori/Decode Ways.js diff --git a/bangdori/Decode Ways.js b/bangdori/Decode Ways.js new file mode 100644 index 0000000..6ae8214 --- /dev/null +++ b/bangdori/Decode Ways.js @@ -0,0 +1,26 @@ +/** + * @param {string} s + * @return {number} + */ +var numDecodings = function (s) { + if (s[0] === "0") return 0; + + const sLen = s.length; + const dp = new Array(sLen + 1).fill(0); + dp[0] = dp[1] = 1; + + for (let i = 2; i <= sLen; i++) { + const oneDigit = parseInt(s[i - 1]); + const twoDigit = parseInt(s.substring(i - 2, i)); + + if (1 <= oneDigit && oneDigit <= 9) { + dp[i] += dp[i - 1]; + } + + if (10 <= twoDigit && twoDigit <= 26) { + dp[i] += dp[i - 2]; + } + } + + return dp[sLen]; +};