El asiento más solitario
- O(n²) · Muy difícil
- Plan completo
- Python
- JavaScript
- textos
- índices
- comparaciones
Enunciado
Irene sube al último vagón del tren nocturno con ganas de dormir. Los asientos van en una sola fila, y ella quiere el libre que quede lo más lejos posible del pasajero más cercano.
Escribe una función que reciba vagon, un texto de "1" (ocupado) y "0" (libre) con al menos uno de cada uno, y regrese un entero: el índice del asiento libre cuya distancia al ocupado más cercano es la mayor. Ese ocupado puede estar a su izquierda o a su derecha, y la distancia es cuántos lugares los separan.
Con "10001", el índice 1 queda a 1 del ocupado más cercano, el 2 a 2 y el 3 a 1: regresa 2. En las puntas solo hay pasajeros de un lado: con "0001" el índice 0 queda a 3, así que regresa 0. Si dos asientos empatan, regresa el de índice más chico.
Ejemplos
El ejemplo
"10001" → 2
La punta izquierda gana
"0001" → 0
La punta derecha gana
"1000" → 3
Un solo asiento libre
"01" → 0
Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.
Empiezas con esto
Python
def mejor_asiento(vagon):
passJavaScript
function mejorAsiento(vagon) {
}Se abre en el navegador, con el editor y las pruebas. Este reto es del plan completo; los de O(1) y O(log n) son gratis.