Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Ground for the House by StanislauL
def house(plan):
plan = [x for x in plan.split('\n') if x]
minX, maxX, minY, maxY, sharp = float('inf'), -1, float('inf'), -1, 0
for xN, x in enumerate(plan):
for yN, y in enumerate(x):
if y == '0': continue
minX, maxX = min(minX, xN), max(maxX, xN)
minY, maxY = min(minY, yN), max(maxY, yN)
sharp += 1
if not sharp: return 0
return (maxX - minX +1)*(maxY + 1 - minY)
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!")
Feb. 5, 2021