Два слова являются изоморфами, если они имеют одинаковый шаблон повторения букв. Например, оба ESTATE
и DUELED
имеют шаблонabcdca
ESTATE
DUELED
abcdca
потому что буквы 1 и 6 одинаковы, буквы 3 и 5 одинаковы, и больше ничего. Это также означает, что слова связаны шифром замещения, здесь с соответствием E <-> D, S <-> U, T <-> E, A <-> L
.
Напишите код, который берет два слова и проверяет, являются ли они изоморфами. Побеждает несколько байтов.
Ввод: две непустые строки заглавных букв A..Z
. Если вы хотите, вы можете взять их как набор из двух строк или как одну строку с разделителем.
Вывод: непротиворечивое значение Truthy для пар, которые являются изоморфами , и непротиворечивое значение Falsey, если это не так. Строки разной длины являются допустимыми входными данными, которые никогда не являются изоморфными.
Тестовые случаи:
Правда:
ESTATE DUELED
DUELED ESTATE
XXX YYY
CBAABC DEFFED
RAMBUNCTIOUSLY THERMODYNAMICS
DISCRIMINATIVE SIMPLIFICATION
Ложь:
SEE SAW
ANTS PANTS
BANANA SERENE
BANANA SENSES
AB CC
XXY XYY
ABCBACCBA ABCBACCAB
ABAB CD
Не стесняйтесь добавлять больше тестов, которые вы считаете полезными.
Leaderboard
Вот фрагмент стека, который генерирует как регулярную таблицу лидеров, так и обзор победителей по языкам.
Чтобы убедиться, что ваш ответ обнаружен, начните его с заголовка, используя следующий шаблон уценки:
# Language Name, N bytes
где N
размер вашего представления. Если вы улучшите свой счет, вы можете сохранить старые результаты в заголовке, вычеркнув их. Например:
# Ruby, <s>104</s> <s>101</s> 96 bytes
ABAB CD
(для zip-подобных подходов)