Learn
Practice
Interview
Resources
Newsletter
F
Toggle theme
0
F
0
Toggle menu
Animations
← Back to All Animations
Strange Printer
Bookmark
Memoization
Interval DP
Optimized
Input
Simple groups
Simple interleave
Repeated pattern
Mixed
Custom
s
=
aaabbb
s = "
a
a
a
b
b
b
"
t =
"ab"
end j
start i
0
1
a
b
0
1
a
b
fewest turns to print "aaabbb"? each turn prints one run of a single char
s = "
a
a
a
b
b
b
"
t =
"ab"
end j
start i
0
1
a
b
0
1
a
b
fewest turns to print "aaabbb"? each turn prints one run of a single char
s = "
a
a
a
b
b
b
"
t =
"ab"
end j
start i
0
1
a
b
0
1
a
b
squash repeated runs: "aaabbb" becomes
"ab"
, same answer
s = "
a
a
a
b
b
b
"
t =
"ab"
end j
start i
0
1
a
b
0
1
a
b
1
1
one char, one turn:
dp[i][i]
=
1
s = "
a
a
a
b
b
b
"
t =
"ab"
len =
2
end j
start i
0
1
a
b
0
1
a
b
1
2
1
"ab": print
'a'
on its own turn, dp[0][1] = dp[
1
][1] + 1 =
2
s = "
a
a
a
b
b
b
"
t =
"ab"
end j
start i
0
1
a
b
0
1
a
b
1
2
1
"aaabbb" prints in
2
turns
algo
master
.
io
Step:
Fewest printer turns for "aaabbb"? Each turn prints one run of a single char over anything
0 / 4
Input
Simple groups
Simple interleave
Repeated pattern
Mixed
Custom
s
=
aaabbb
0 / 4
algo
master
.
io
Step:
Fewest printer turns for "aaabbb"? Each turn prints one run of a single char over anything