Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Identify Block solution in Uncategorized category for Identify Block by vvm70
def identify_block(numbers):
letters = {
'I': [{i + j for i in range(1, 5)} for j in range(0, 13, 4)] + [{i + j for i in range(0, 13, 4)} for j in range(1, 5)],
'J': [{i + j + k for i in t} for t in ((2, 6, 9, 10), (1, 2, 5, 9)) for j in (0, 1, 2) for k in (0, 4)] + [{i + j + k for i in t} for t in ((1, 5, 6, 7), (1, 2, 3, 7)) for j in (0, 1) for k in (0, 4, 8)],
'L': [{i + j + k for i in t} for t in ((1, 5, 9, 10), (1, 2, 6, 10)) for j in (0, 1, 2) for k in (0, 4)] + [{i + j + k for i in t} for t in ((3, 5, 6, 7), (1, 2, 3, 5)) for j in (0, 1) for k in (0, 4, 8)],
'O': [{i + j + a + b for i in (1, 2) for j in (0, 4)} for a in (0, 1, 2) for b in (0, 4, 8)],
'S': [{i + j + k for i in (2, 3, 5, 6)} for j in (0, 1) for k in (0, 4, 8)] + [{i + j + k for i in (1, 5, 6, 10)} for j in (0, 1, 2) for k in (0, 4)],
'T': [{i + j + k for i in t} for t in ((1, 5, 6, 9), (2, 5, 6, 10)) for j in (0, 1, 2) for k in (0, 4)] + [{i + j + k for i in t} for t in ((2, 5, 6, 7), (1, 2, 3, 6)) for j in (0, 1) for k in (0, 4, 8)],
'Z': [{i + j + k for i in (1, 2, 6, 7)} for j in (0, 1) for k in (0, 4, 8)] + [{i + j + k for i in (2, 5, 6, 9)} for j in (0, 1, 2) for k in (0, 4)]
}
return ''.join(key for key, val in letters.items() if numbers in val) or None
if __name__ == '__main__':
#These "asserts" using only for self-checking and not necessary for auto-testing
assert identify_block({10, 13, 14, 15}) == 'T', 'T'
assert identify_block({1, 5, 9, 6}) == 'T', 'T'
assert identify_block({2, 3, 7, 11}) == 'L', 'L'
assert identify_block({4, 8, 12, 16}) == 'I', 'I'
assert identify_block({3, 1, 5, 8}) == None, 'None'
print('"Run" is good. How is "Check"?')
June 27, 2020