Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
4 lines less but weird solution in Creative category for Huffman Encode by CDG.Axel
def huffman_encode(s: str) -> str:
code, seq = dict.fromkeys(s, ''), sorted((s.count(i), i) for i in set(s))
while len(seq) > 1 and (l := seq[0]) and (r := seq[1]) and (seq := sorted(seq[2:] + [(l[0]+r[0], l[1]+r[1])])):
code = {k: '0' * (k in l[1]) + '1' * (k in r[1]) + v for k, v in code.items()}
return ''.join(code[i] or '0' for i in s)
Dec. 14, 2022
Comments: