El itinerario del boleto
- O(n) · Media
- Plan completo
- Python
- JavaScript
- diccionarios
- conjuntos
- listas
Enunciado
A Renata le tocó en la herencia un sobre con los boletos de tren de un viaje que su abuela hizo hace sesenta años, y quiere reconstruir la ruta. Cada boleto dice de qué ciudad sale y a qué ciudad llega, pero en el sobre quedaron revueltos.
Escribe una función que reciba boletos, una lista de listas de dos textos: el primero es la ciudad de donde sale ese boleto y el segundo la ciudad a donde llega. Hay de 1 a 20 boletos y vienen en cualquier orden. El viaje de la abuela no repitió ninguna ciudad: cada ciudad es la salida de un solo boleto o de ninguno, y la llegada de un solo boleto o de ninguno. Con todos los boletos se arma un único viaje seguido: ninguno queda suelto y no hay dos viajes aparte.
Los nombres se comparan completos: dos ciudades son la misma solo si su nombre es igual de principio a fin. "Santa Fe" y "Santa Fe de Antioquia" son dos ciudades distintas, aunque una empiece como la otra.
Y como el viaje es uno solo y seguido, hay exactamente una ciudad que no es la llegada de ningún boleto: de esa salió la abuela.
Regresa la lista de las ciudades del viaje en orden, empezando por la ciudad de donde salió la abuela y terminando en la última a donde llegó. Con un boleto son dos ciudades, con dos boletos son tres, y así.
Con [["Lyon", "Turín"], ["París", "Lyon"], ["Turín", "Roma"]] regresas ["París", "Lyon", "Turín", "Roma"]. Revísalo: el boleto de París llega a Lyon, el de Lyon a Turín y el de Turín a Roma; se usan los tres y ninguna ciudad se repite.
Ejemplos
El ejemplo
[["Lyon", "Turín"], ["París", "Lyon"], ["Turín", "Roma"]] → ["París", "Lyon", "Turín", "Roma"]
Un solo boleto
[["Oaxaca", "Puebla"]] → ["Oaxaca", "Puebla"]
Los boletos ya venían en orden
[["Mérida", "Campeche"], ["Campeche", "Villahermosa"], ["Villahermosa", "Veracruz"]] → ["Mérida", "Campeche", "Villahermosa", "Veracruz"]
Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.
Empiezas con esto
Python
def itinerario(boletos):
passJavaScript
function itinerario(boletos) {
}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.