Dwa słowa są izomorfami, jeśli mają ten sam wzór powtarzania liter. Na przykład, zarówno ESTATE
i DUELED
mają wzórabcdca
ESTATE
DUELED
abcdca
ponieważ litery 1 i 6 są takie same, litery 3 i 5 są takie same i nic więcej. Oznacza to również, że słowa są powiązane szyfrem podstawienia, tutaj z dopasowaniem E <-> D, S <-> U, T <-> E, A <-> L
.
Napisz kod, który wymaga dwóch słów i sprawdza, czy są to izomorfy. Wygrywa najmniej bajtów.
Dane wejściowe: dwa niepuste ciągi wielkich liter A..Z
. Jeśli chcesz, możesz wziąć je jako zbiór dwóch ciągów lub jako pojedynczy ciąg z separatorem.
Dane wyjściowe: spójna wartość prawdy dla par, które są izomorfami , i spójna wartość Falsey, jeśli nie są. Ciągi o różnych długościach są poprawnymi danymi wejściowymi, które nigdy nie są izomorfami.
Przypadki testowe:
Prawdziwe:
ESTATE DUELED
DUELED ESTATE
XXX YYY
CBAABC DEFFED
RAMBUNCTIOUSLY THERMODYNAMICS
DISCRIMINATIVE SIMPLIFICATION
Fałszywe:
SEE SAW
ANTS PANTS
BANANA SERENE
BANANA SENSES
AB CC
XXY XYY
ABCBACCBA ABCBACCAB
ABAB CD
Dodaj więcej przypadków testowych, które okażą się przydatne.
Tabela liderów
Oto fragment kodu, który pozwala wygenerować zarówno zwykłą tabelę wyników, jak i przegląd zwycięzców według języka.
Aby upewnić się, że twoja odpowiedź się pojawi, zacznij od nagłówka, korzystając z następującego szablonu Markdown:
# Language Name, N bytes
gdzie N
jest rozmiar twojego zgłoszenia. Jeśli poprawić swój wynik, to może zachować stare porachunki w nagłówku, uderzając je przez. Na przykład:
# Ruby, <s>104</s> <s>101</s> 96 bytes
ABAB CD
(dla podejść typu zip)