Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
with combinations solution in Creative category for Staircase by roman.bratishchev
from itertools import combinations, chain
def staircase(digits: str) -> int:
beat_prev_len=lambda digits: len([(prev:=int(digits[0]), nd:='')[0]]+[(prev:=int(nd), nd:='')[0] for d in digits[1:] if int(nd:=nd+d)>prev])
return max(
beat_prev_len(digits_comb) for digits_comb in chain.from_iterable(
combinations(digits,digits_num) for digits_num in range(1,len(digits)+1)
)
)
print("Example:")
print(staircase("31415926"))
# These "asserts" are used for self-checking
assert staircase("100123") == 4
assert staircase("503715") == 4
assert staircase("0425494220946") == 6
assert staircase("04414952075836") == 7
assert staircase("1234567891011213") == 12
print("The mission is done! Click 'Check Solution' to earn rewards!")
Aug. 11, 2024