Skip to content

Commit 3168fa4

Browse files
committed
feat: 91. Decode Ways
1 parent 35e5aaa commit 3168fa4

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

decode-ways/gwbaik9717.js

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
// Time complexity: O(n)
2+
// Space complexity: O(n)
3+
4+
/**
5+
* @param {string} s
6+
* @return {number}
7+
*/
8+
var numDecodings = function (s) {
9+
const n = s.length;
10+
const dp = Array.from({ length: n + 2 }, () => 0);
11+
dp[1] = 1;
12+
13+
for (let i = 2; i < n + 2; i++) {
14+
// 한자리
15+
const charCode = Number(s[i - 2]);
16+
17+
if (charCode > 0) {
18+
dp[i] += dp[i - 1];
19+
}
20+
21+
// 두자리
22+
if (i <= 2) {
23+
continue;
24+
}
25+
26+
if (Number(s[i - 3]) == 0) {
27+
continue;
28+
}
29+
30+
const strCode = Number(s.slice(i - 3, i - 1));
31+
32+
if (strCode > 0 && strCode <= 26) {
33+
dp[i] += dp[i - 2];
34+
}
35+
}
36+
37+
return dp.at(-1);
38+
};

0 commit comments

Comments
 (0)