Dos palabras son isomorfos si tienen el mismo patrón de repeticiones de letras. Por ejemplo, ambos ESTATE
y DUELED
tienen patrónabcdca
ESTATE
DUELED
abcdca
Como las letras 1 y 6 son iguales, las letras 3 y 5 son iguales y nada más. Esto también significa que las palabras están relacionadas por un cifrado de sustitución, aquí con la coincidencia E <-> D, S <-> U, T <-> E, A <-> L
.
Escriba código que tome dos palabras y verifique si son isomorfos. Pocos bytes ganan.
Entrada: Dos cadenas de letras mayúsculas no vacías A..Z
. Si lo desea, puede tomarlos como una colección de dos cadenas o como una sola cadena con un separador.
Salida: Un valor de Verdad consistente para pares que son isomorfos, y un valor de Falsey consistente si no lo son. Las cadenas de diferentes longitudes son entradas válidas que nunca son isomorfos.
Casos de prueba:
Cierto:
ESTATE DUELED
DUELED ESTATE
XXX YYY
CBAABC DEFFED
RAMBUNCTIOUSLY THERMODYNAMICS
DISCRIMINATIVE SIMPLIFICATION
Falso:
SEE SAW
ANTS PANTS
BANANA SERENE
BANANA SENSES
AB CC
XXY XYY
ABCBACCBA ABCBACCAB
ABAB CD
Siéntase libre de agregar más casos de prueba que considere útiles.
Tabla de clasificación
Aquí hay un fragmento de pila para generar una tabla de clasificación regular y una descripción general de los ganadores por idioma.
Para asegurarse de que su respuesta se muestre, comience con un título, usando la siguiente plantilla de Markdown:
# Language Name, N bytes
¿Dónde N
está el tamaño de su envío? Si mejora su puntaje, puede mantener los puntajes antiguos en el título, tachándolos. Por ejemplo:
# Ruby, <s>104</s> <s>101</s> 96 bytes
ABAB CD
(para enfoques tipo zip)