Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Counter solution in Clear category for One line Drawing by gyahun_dash
import collections, itertools
def draw(segments):
edges = [{s[:2], s[2:]} for s in segments]
counter = collections.Counter(itertools.chain(*edges))
nodes = set(counter)
src = max(nodes, key = lambda n: counter[n] % 2)
drawing = [src]
while edges:
candidates = [n for n in nodes if {src, n} in edges]
if not candidates: return []
dst = max(candidates, key = counter.get)
drawing.append(dst)
edge = {src, dst}
edges.remove(edge)
counter.subtract(edge)
src = dst
return drawing
Sept. 2, 2014
Comments: