Por supuesto, la red SE está muy bien informada sobre cómo ser respetuoso en el baño, pero para aquellos de ustedes que necesitan un resumen, ser respetuoso significa tirar la cadena del inodoro, etc. Lo más importante, sin embargo, es usar el puesto lo más lejos posible de otros como sea posible.
El reto
Dado un plano de un conjunto de puestos con indicaciones de cuáles están en uso como una cadena, debe devolver o imprimir desde una función o programa donde esté el lugar más respetuoso para hacer su negocio.
La entrada
0 1 2 3 4 5 <- The stall number which is not actually visible in the input.
| | |-| |-|-| <- the stalls
Los puestos están numerados en orden ascendente de izquierda a derecha. Siempre habrá al menos un puesto vacío. Puede haber hasta 50 puestos en una entrada. También puede tomar la entrada como una matriz o cadena de 0
sy 1
s o booleanos si lo prefiere.
Los puestos en uso tienen -
en ellos (entre las tuberías).
La salida
El puesto más respetuoso es el que, en promedio, está más alejado de los que están en uso. La distancia entre dos puestos es el valor absoluto de la diferencia de los números por encima de ellos.
Para ser claros: está encontrando la distancia promedio de todos los puestos, no solo de los vecinos.
Debe generar el número más bajo del puesto más respetuoso para ir a que esté vacío .
Ejemplos
Input:
|-| |-| OR 101
Output:
1
Input:
| | |-| |-|-| OR 001011
Output:
0
Input:
|-| |-| | | | |-|-| OR 101000011
Output:
1
Input:
|-| | | | | |-|-| | | | | OR 100000110000
Output:
11
Input:
|-|-|-|-| | | | | | |-| OR 11110000001
Output:
9
Input:
|-| | OR 10
Output:
1
Input:
|-| | |-| OR 1001
Output:
1
Este es el código de golf , por lo que gana el código más corto en bytes.
Puede usar indexación basada en 0 o 1 en su respuesta, lo que prefiera; si usa una indexación basada en 1, debe decirlo explícitamente en su respuesta.
[1,0,0,1]
como un caso de prueba. Ninguno de los casos de prueba actuales verifica si los lazos se rompen correctamente.
101000011
devuelve 1 (en lugar de 4 o 5)?