Saltar al contenido

El candado de anillos

Enunciado

En el nivel 7 de la cripta, cada cofre tiene dos anillos de símbolos: el de adentro está fijo y el de afuera gira. Se abre con el giro que deja más símbolos frente a su pareja.

Escribe una función que reciba afuera y adentro, dos textos de letras mayúsculas del mismo largo (pueden venir vacíos). Girar k lugares pasa los primeros k símbolos de afuera al final: "ABCD" girado 1 queda "BCDA", y girado 3 queda "DABC". Para cada giro de 0 a largo menos 1, cuenta las posiciones donde el anillo girado y adentro tienen el mismo símbolo, y regresa el giro, un entero, con más coincidencias.

Con "AABB" y "ABBA": el giro 0 coincide en 2, el 1 ("ABBA") en 4, el 2 en 2 y el 3 en 0, así que regresa 1. Si dos giros empatan, regresa el más chico; si ninguno coincide en nada, o están vacíos, regresa 0.

Ejemplos

  • El ejemplo

    "AABB", "ABBA" → 1

  • Coinciden todos con el giro 2

    "ABCDE", "CDEAB" → 2

  • Empatan dos giros

    "ABAB", "BABA" → 1

  • Ningún giro coincide

    "AB", "CD" → 0

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

Empiezas con esto

Python

def mejor_giro(afuera, adentro):
    pass

JavaScript

function mejorGiro(afuera, adentro) {
}
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 →