Tarea
Un teatro tiene 10 filas, etiquetadas A
a J
de adelante hacia atrás, y 15 asientos en cada fila, numeradas del 1 al 15 de izquierda a derecha.
El programa utiliza las siguientes reglas para elegir los mejores asientos.
- Regla 1: Todos los asientos en una reserva deben estar en la misma fila, uno al lado del otro.
- Regla 2: Los asientos deben estar lo más cerca posible del frente, luego lo más cerca posible de la izquierda (letra más baja, luego el número más bajo)
Escriba una función que tome el número de tickets deseados como una entrada entera ( n
) y genere los mejores asientos disponibles en una lista de longitud n
.
Tu programa debe:
- Salida
-1
si 1> Entrada o Entrada> 15 * - Salida
-1
si los asientos no están disponibles * - Tiene una función
B(n)
que el usuario puede usar para ingresar el número deseado de asientos.
* Puede generar el -1 en una lista si lo hace más fácil
Ejemplos
I / O
Llamar B(5)
a una nueva matriz debería devolver [A1, A2, A3, A4, A5]
Llamar B(2)
después de eso debería devolver [A6, A7]
Llamar B(10)
después de eso debería regresar [B1, B2, ... B9, B10]
Llamar B(-1)
siempre debería regresar-1
Solución sin golf Python
Theatre = [ [False] * 16 ] * 11
def B(n):
if 0 <= n <= 15:
for i in range(10):
for j in range(15-n+1):
try:
if not Theatre[i][j]:
if not Theatre[i][j + n]:
row = i
start = j
List = []
for q in range(n):
List.append(chr(row + 65) + str(start + q + 1))
Theatre[row][start + q] = True
return List
except:
break
return -1