Skip to content

Commit f3d756f

Browse files
committed
decode-ways solution
1 parent ffaa0f7 commit f3d756f

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
class Solution:
2+
def numDecodings(self, s: str) -> int:
3+
4+
# DP
5+
dp = [0]*(len(s)+1)
6+
7+
# s๊ฐ€ 0์œผ๋กœ ์‹œ์ž‘ํ•˜๋ฉด 0 return
8+
if s[0] == '0':
9+
return 0
10+
11+
dp[0] = 1 # ๋นˆ๋ฌธ์ž์—ด์€ ํ•ด์„๊ฐ€๋Šฅํ•œ 1๊ฐ€์ง€ ๊ฒฝ์šฐ๋กœ ์ทจ๊ธ‰ (์ดˆ๊ธฐ๊ธฐ์ค€์  ์—ญํ• , dp[i-2]๊ณ„์‚ฐ์‹œํ•„์š”)
12+
dp[1] = 1 # ์ฒซ๋ฒˆ์งธ์ž๋ฆฌ์˜ ์ฒ˜๋ฆฌ๋ฐฉ๋ฒ•์€ 1๊ฐ€์ง€
13+
14+
# len(s)๊ฐ€ 2 ์ด์ƒ์ผ๋•Œ
15+
for i in range(2,len(s)+1):
16+
one = int(s[i-1]) # ํ•œ์ž๋ฆฌ(ํ˜„์žฌ์ž๋ฆฌ)
17+
two = int(s[i-2:i]) # ํ•œ์ž๋ฆฌ + ์•ž์ž๋ฆฌ = ๋‘์ž๋ฆฌ
18+
19+
if 1 <= one <= 9:
20+
dp[i] += dp[i-1]
21+
if 10 <= two <= 26:
22+
dp[i] += dp[i-2]
23+
24+
return dp[len(s)]

0 commit comments

Comments
ย (0)