|
Author: Eduardo Enriquez
Otro ejercicio de entrevista: dado una lista de valores determinar qué poligono se forma.
Un ejercicio que me han tomado fue decir si unos valores dados formaban un cuadrado, un rectangulo o ninguna de las opciones anteriores. Para esto nos daban una lista con cuatro valores y con ellos había que decir a qué figura pertenecia.
Aquí va el código:
def calculate_shape(shapes):
squares = 0
rects = 0
neithers = 0
for values in shapes:
more_values = len(values) != 4
negative_values = any(item <= 0 for item in values)
if more_values or negative_values:
neithers += 1
continue
sqr_flag = len(set(values)) == 1
if sqr_flag:
squares += 1
continue
rect_flag = (values[0] == values[2]) and (values[1] == values[3])
if rect_flag:
rects += 1
continue
neithers += 1
return {
'squares': squares,
'rect': rects,
'neithers': neithers,
}
def main():
polygons = [
[ 100, 100, 100, 100], # sqr
[ 10, 10, 10, 10], # sqr
[ 1.5, 1.5, 1.5, 1.5], # sqr
[ 10.5, 10, 10.5, 10], # req
[ 100, 200, 100, 200], # req
[], # nei
[ 1, 2, 3, 4], # nei
[ -1, -2, -1, -2], # nei
[ 1, 0, 1, 0], # nei
[ 100, 120, 100, 50], # nei
[ -100, 20, -100, 10], # nei
[ 100, 200, 100], # nei
[ 10, 20, 10, 50, 30], # nei
[ 1.1, 2.2, 1, 2], # nei
]
result = {
'squares': 3,
'rect': 2,
'neithers': 9,
}
response = calculate_shape(polygons)
print("Are equal: %s" % (result == response))
print(response)
print(result)
if __name__ == '__main__':
main()