Skip to content

Commit f3496fb

Browse files
committed
decode-ways solution(py)
1 parent 78849ad commit f3496fb

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

โ€Ždecode-ways/hi-rachel.pyโ€Ž

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# ๋””์ฝ”๋“œ ๊ฐ€๋Šฅ 1 ~ 26
2+
# ์ˆซ์ž์˜ ์ฒซ ๋ฒˆ์งธ ์ž๋ฆฌ๊ฐ€ 0์ด๋ผ๋ฉด decode x
3+
# O(n) time, O(n) space
4+
5+
class Solution:
6+
def numDecodings(self, s: str) -> int:
7+
memo = {len(s): 1} # ๋ฌธ์ž์—ด ๋์— ๋„๋‹ฌํ–ˆ์„ ๋•Œ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜ 1
8+
9+
def dfs(start):
10+
if start in memo: # ์ด๋ฏธ ๊ณ„์‚ฐํ•œ ์œ„์น˜ ์žฌ๊ณ„์‚ฐ x
11+
return memo[start]
12+
if s[start] == "0":
13+
memo[start] = 0
14+
elif start + 1 < len(s) and int(s[start:start + 2]) < 27: # ๋‘ ์ž๋ฆฌ๋กœ ํ•ด์„ ๊ฐ€๋Šฅํ•  ๋•Œ
15+
memo[start] = dfs(start + 1) + dfs(start + 2) # ์ฒซ ํ•œ ์ž๋ฆฌ๋งŒ decode ๊ฒฝ์šฐ + ๋‘ ์ž๋ฆฌ ํ•œ๊บผ๋ฒˆ์— decode ๊ฒฝ์šฐ
16+
else:
17+
memo[start] = dfs(start + 1) # ๋‘ ์ž๋ฆฌ๋กœ decode ๋ถˆ๊ฐ€๋Šฅํ•  ๋•Œ -> ํ•œ ์ž๋ฆฌ๋งŒ decode
18+
return memo[start]
19+
return dfs(0)

0 commit comments

Comments
ย (0)