Seguidos y en orden
- O(n²) · Muy difícil
- Plan completo
- Python
- JavaScript
- listas
- ciclos
- booleanos
Enunciado
Sofía anota, en orden, el número de cada camión que pasa por su parada: 2, 4, 3, 5 y 7.
Escribe una función que reciba esa lista larga y otra más corta, y regrese verdadero si la corta aparece dentro de la larga con sus números seguidos y en el mismo orden.
Con 4 y 3 la respuesta es verdadero: pasaron uno tras otro.
Con 3 y 7 es falso, aunque los dos números estén en la lista: entre ellos pasó el 5, así que no van seguidos. Ahí está el chiste del reto. Las reglas: el orden cuenta, así que 3 y 4 tampoco aparecen. La lista corta puede empezar en cualquier parte de la larga, incluso justo al final. Si la corta trae más números que la larga, no cabe y regresas falso. Y la lista corta vacía está contenida en cualquier lista, porque no pide ningún número: en ese caso regresas verdadero.
Ejemplos
Uno tras otro
[2, 4, 3, 5, 7], [4, 3] → true
Están, pero separados
[2, 4, 3, 5, 7], [3, 7] → false
Ninguno de los dos está
[2, 4, 3, 5, 7], [1, 6] → false
Justo al final
[8, 1, 9, 4, 6], [4, 6] → true
Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.
Empiezas con esto
Python
def contiene(larga, sub):
passJavaScript
function contiene(larga, sub) {
}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.