Saltar al contenido

El rover que vuelve a la base

Enunciado

Cada orden tarda veinte minutos en llegar a Marte, así que el rover las recibe todas juntas, como flechas, y avanza una casilla por flecha. Al terminar, el control quiere saber a cuántos pasos quedó de la base. Escribe una función que reciba un texto hecho solo de ^ (una casilla arriba), v (abajo), < (izquierda) y > (derecha), y regrese un número entero: los pasos horizontales más los pasos verticales que separan al rover de donde empezó, sin importar hacia qué lado quedó.

Con ">>^^^<v" avanza 2 a la derecha y 1 a la izquierda, y queda a 1 de lado; sube 3 y baja 1, y queda a 2 de alto: regresas 3.

Las flechas contrarias se cancelan: "^v" da 0. Las de ejes distintos no: "^<" da 2. El texto vacío da 0.

Ejemplos

  • El del ejemplo

    ">>^^^<v" → 3

  • Vuelve a donde empezó

    "^v<>" → 0

  • Arriba y a la izquierda no se cancelan

    "^<" → 2

  • Una sola flecha

    ">" → 1

Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.

Empiezas con esto

Python

def pasos_a_base(ordenes):
    pass

JavaScript

function pasosABase(ordenes) {
}
Resolver este reto

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.

Más retos de O(n)

Ver todos los retos →