El índice arrancado
- O(n) · Media
- Plan completo
- Python
- JavaScript
- textos
- expresiones regulares
- listas
Enunciado
A la librería de Fermín le llegó un libro de segunda con el índice a medias: alguien le arrancó hojas y solo quedaron algunos renglones. Antes de ponerlo en el aparador, Fermín quiere saber qué capítulos se perdieron. Escribe una función que reciba indice, la lista de los renglones que quedaron, cada uno un texto. La lista puede venir vacía. Un renglón de capítulo trae la palabra Capítulo, luego un espacio, luego el número del capítulo, y al final la página donde empieza, como en "Capítulo 3 ... 45". También hay renglones de otras partes del libro, como "Prólogo ... 7", y la palabra Capítulo no siempre abre el renglón: "Segunda parte, Capítulo 4 ... 60" también es un capítulo. De los números de un renglón, el capítulo es el que va junto a la palabra Capítulo; los demás son páginas.
Regresa la lista de los capítulos que no aparecen, de menor a mayor, contando desde el 1 y hasta el capítulo más alto que sí aparece. Con ["Prólogo ... 7", "Capítulo 1 ... 11", "Capítulo 4 ... 38"] regresas [2, 3]: el 1 y el 4 están, el 2 y el 3 no, y del 5 en adelante no se pregunta.
Si no falta ninguno, o si el índice no trae ningún capítulo, regresas una lista vacía. El libro no pasa de 20 capítulos.
Ejemplos
El ejemplo
["Prólogo ... 7", "Capítulo 1 ... 11", "Capítulo 4 ... 38"] → [2, 3]
No falta ninguno
["Capítulo 1 ... 5", "Capítulo 2 ... 9", "Capítulo 3 ... 14"] → []
La palabra va en medio del renglón
["Capítulo 1 ... 9", "Segunda parte, Capítulo 3 ... 45"] → [2]
La página no es el capítulo
["Capítulo 2 ... 11"] → [1]
El índice no trae capítulos
["Prólogo ... 3", "Índice de mapas ... 121"] → []
Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.
Empiezas con esto
Python
def capitulos_que_faltan(indice):
passJavaScript
function capitulosQueFaltan(indice) {
}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.