Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Creative category for The Square Chest by coells
# hey, multiresolution analysis?!
def checkio(edges):
transition = lambda s1, s2, d: [(x, v) for x, y in s1 for u, v in s2 if y == u and (v - x) in d]
squares = lambda shapes: sum(len(s) - len(set(s)) for s in shapes)
e1 = [sorted(e) for e in edges]
e2 = transition(e1, e1, [2, 8])
e3 = transition(e1, e2, [3, 12])
f1 = transition(e1, e1, [5])
f2 = transition(e2, e2, [10])
f3 = transition(e3, e3, [15])
return squares([f1, f2, f3])
if __name__ == '__main__':
assert (checkio([[1, 2], [3, 4], [1, 5], [2, 6], [4, 8], [5, 6], [6, 7],
[7, 8], [6, 10], [7, 11], [8, 12], [10, 11],
[10, 14], [12, 16], [14, 15], [15, 16]]) == 3), "First, from description"
assert (checkio([[1, 2], [2, 3], [3, 4], [1, 5], [4, 8],
[6, 7], [5, 9], [6, 10], [7, 11], [8, 12],
[9, 13], [10, 11], [12, 16], [13, 14], [14, 15], [15, 16]]) == 2), "Second, from description"
assert (checkio([[1, 2], [1, 5], [2, 6], [5, 6]]) == 1), "Third, one small square"
assert (checkio([[1, 2], [1, 5], [2, 6], [5, 9], [6, 10], [9, 10]]) == 0), "Fourth, it's not square"
assert (checkio([[16, 15], [16, 12], [15, 11], [11, 10],
[10, 14], [14, 13], [13, 9]]) == 0), "Fifth, snake"
March 31, 2014
Comments: