Learn
Practice
Interview
Resources
Newsletter
F
Toggle theme
0
F
0
Toggle menu
Animations
← Back to All Animations
Decode Ways
Bookmark
Recursion
Memoization
Bottom-Up DP
Space Optimized
Input
Example 1
Example 2 (zero inside)
Example 3 (dead end)
Starts with 0
Custom
s
=
1226
s =
"1226"
1=A, 2=B, ... 26=Z
1
2
2
6
digits
dp
0
0
0
1
0
2
0
3
0
4
each digit or digit pair (1..26) becomes a letter: how many readings of "1226"?
s =
"1226"
1=A, 2=B, ... 26=Z
1
2
2
6
digits
dp
0
0
0
1
0
2
0
3
0
4
each digit or digit pair (1..26) becomes a letter: how many readings of "1226"?
s =
"1226"
1=A, 2=B, ... 26=Z
1
2
2
6
digits
dp
1
0
1
1
0
2
0
3
0
4
dp[0]
=
1
the empty prefix decodes one way
s =
"1226"
1=A, 2=B, ... 26=Z
1
2
2
6
digits
dp
1
0
1
1
0
2
0
3
0
4
i = 2
i = 2
how many ways to decode
"12"
?
s =
"1226"
1=A, 2=B, ... 26=Z
1
2
2
6
digits
L
dp
1
0
1
1
2
2
0
3
0
4
i = 2
i-2
pair
'12'
= letter
L
add dp[0] =
1
s =
"1226"
1=A, 2=B, ... 26=Z
1
2
2
6
digits
dp
1
0
1
1
2
2
0
3
0
4
i = 3
i = 3
how many ways to decode
"122"
?
s =
"1226"
1=A, 2=B, ... 26=Z
1
2
2
6
digits
B
dp
1
0
1
1
2
2
2
3
0
4
i = 3
i-1
last digit
'2'
= letter
B
add dp[2] =
2
s =
"1226"
1=A, 2=B, ... 26=Z
1
2
2
6
digits
dp
1
0
1
1
2
2
3
3
0
4
i = 3
dp[3]
=
2
+
1
=
3
s =
"1226"
1=A, 2=B, ... 26=Z
1
2
2
6
digits
F
dp
1
0
1
1
2
2
3
3
3
4
i = 4
i-1
last digit
'6'
= letter
F
add dp[3] =
3
s =
"1226"
1=A, 2=B, ... 26=Z
1
2
2
6
digits
Z
dp
1
0
1
1
2
2
3
3
5
4
i = 4
i-2
pair
'26'
= letter
Z
add dp[2] =
2
s =
"1226"
1=A, 2=B, ... 26=Z
1
2
2
6
digits
dp
1
0
1
1
2
2
3
3
5
4
5
ways to decode "1226"
ABBF ABZ AVF LBF LZ
algo
master
.
io
Step:
How many ways can "1226" be decoded back into letters?
0 / 15
Input
Example 1
Example 2 (zero inside)
Example 3 (dead end)
Starts with 0
Custom
s
=
1226
0 / 15
algo
master
.
io
Step:
How many ways can "1226" be decoded back into letters?