Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Ground for the House - zip transposed solution in Clear category for Ground for the House by JohanL
def house(plan):
rows, cols = plan.split(), [''.join(c) for c in zip(*plan.split())]
try:
rl = min(row.find('#') for row in rows if '#' in row)
rr = max(row.rfind('#') for row in rows if '#' in row)
cu = min(col.find('#') for col in cols if '#' in col)
cd = max(col.rfind('#') for col in cols if '#' in col)
return (rr-rl+1)*(cd-cu+1)
except ValueError:
return 0
if __name__ == '__main__':
print("Example:")
print(house('''
0000000
##00##0
######0
##00##0
#0000#0
'''))
#These "asserts" using only for self-checking and not necessary for auto-testing
assert house('''
0000000
##00##0
######0
##00##0
#0000#0
''') == 24
assert house('''0000000000
#000##000#
##########
##000000##
0000000000
''') == 30
assert house('''0000
0000
#000
''') == 1
assert house('''0000
0000
''') == 0
assert house('''
0##0
0000
#00#
''') == 12
print("Coding complete? Click 'Check' to earn cool rewards!")
Dec. 10, 2018