Encuentre la ejecución más larga de verdadero en una lista de booleanos. Devuelve la misma lista, con todas las demás falsas falsas.
De entrada y salida
Una lista; cualquier formato habitual (por ejemplo, una lista delimitada como una cadena).
Detalles
Verdadero y falso puede ser cualquier cosa que su lenguaje use típicamente para esos valores, o los enteros 1 y 0. Si usa caracteres individuales, la lista puede ser una concatenación (por ejemplo, 10001).
Si hay un empate para la carrera más larga, mantén todas las carreras de empate verdaderas y falsifica todas las carreras más cortas.
Ejemplos
input ↦ output
1,0,1,0,1 ↦ 1,0,1,0,1
1,1,0,1,1,0,1 ↦ 1,1,0,1,1,0,0
1,1,0,1,1,1,0,1,1 ↦ 0,0,0,1,1,1,0,0,0
1,1,1 ↦ 1,1,1
0,0,1 ↦ 0,0,1
0,0 ↦ 0,0
1,1,1,0,0,0,1,1,1,1,0,1,0,0,1,1,0,1,1,1,1,0,0,1,0 ↦ 0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0
(directamente desde /programming//q/37447114 )