El candado de anillos
- O(n²) · Muy difícil
- Plan completo
- Python
- JavaScript
- textos
- ciclos
- índices
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):
passJavaScript
function mejorGiro(afuera, adentro) {
}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.