Deux mots sont isomorphes s'ils ont le même motif de répétition de lettre. Par exemple, les deux ESTATE
et DUELED
ont un motifabcdca
ESTATE
DUELED
abcdca
parce que les lettres 1 et 6 sont identiques, les lettres 3 et 5 sont identiques et rien d’autre. Cela signifie également que les mots sont liés par un chiffre de substitution, ici avec la correspondance E <-> D, S <-> U, T <-> E, A <-> L
.
Écrivez un code qui prend deux mots et vérifie s’ils sont isomorphes. Le moins d'octets gagne.
Entrée: deux chaînes de lettres majuscules non vides A..Z
. Si vous le souhaitez, vous pouvez les prendre comme une collection de deux chaînes ou comme une seule chaîne avec un séparateur.
Sortie: une valeur de vérité cohérente pour les paires qui sont des isomorphes et une valeur de Falsey cohérente si elles ne le sont pas. Les chaînes de différentes longueurs sont des entrées valides qui ne sont jamais isomorphes.
Cas de test:
Vrai:
ESTATE DUELED
DUELED ESTATE
XXX YYY
CBAABC DEFFED
RAMBUNCTIOUSLY THERMODYNAMICS
DISCRIMINATIVE SIMPLIFICATION
Faux:
SEE SAW
ANTS PANTS
BANANA SERENE
BANANA SENSES
AB CC
XXY XYY
ABCBACCBA ABCBACCAB
ABAB CD
N'hésitez pas à ajouter d'autres cas de test que vous jugez utiles.
Classement
Voici un extrait de pile permettant de générer à la fois un classement régulier et un aperçu des gagnants par langue.
Pour vous assurer que votre réponse apparaît, commencez votre réponse par un titre, en utilisant le modèle Markdown suivant:
# Language Name, N bytes
où N
est la taille de votre soumission. Si vous améliorez votre score, vous pouvez conserver les anciens scores en les effaçant. Par exemple:
# Ruby, <s>104</s> <s>101</s> 96 bytes
ABAB CD
(pour les approches de type zip)