Saltar al contenido

El asiento más solitario

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):
    pass

JavaScript

function mejorAsiento(vagon) {
}
Resolver este reto

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.

Más retos de O(n²)

Ver todos los retos →