Menu
CoddyTech

Isomorphic Strings

ŁatweHaszowaniepython iconjava iconcpp iconc iconjs icon+10

Dwa ciągi znaków są izomorficzne, jeśli można zmienić nazwy znaków w pierwszym ciągu tak, aby otrzymać drugi. Każde wystąpienie danego znaku otrzymuje tę samą nową nazwę, dwa różne znaki nigdy nie otrzymują tej samej nazwy, a znak może zachować swoją nazwę. Dla dwóch ciągów znaków s i t o tej samej długości zwróć true, jeśli są izomorficzne, a false, jeśli nie są.

Funkcja

isIsomorphic(s: string, t: string) → boolean
sstring
ciąg znaków do zmiany nazwy, litery i cyfry
tstring
ciąg znaków, który należy osiągnąć, o tej samej długości co s
Zwracaboolean
prawda, jeśli zmiana nazw znaków w s na zasadzie jeden do jednego daje t

Ograniczenia

  • 1 ≤ s.length ≤ 2 × 104
  • t.length == s.length
  • s i t zawierają wyłącznie angielskie litery i cyfry. Wielkie i małe litery są różnymi znakami.

Przykłady

Wejście
s = "noon"t = "deed"
Wyjście
true
Wyjaśnienie
Zmień nazwę n na d, a o na e. Każda pozycja zgadza się z tą zmianą nazw, a dwie litery otrzymują różne nazwy.
challenge icon

Pytanie dodatkowe

Czy mając listę słów, potrafisz pogrupować te, które są izomorficzne względem siebie, bez porównywania każdej pary słów?

Zresetuj kod
def isIsomorphic(s, t):
    # Napisz kod tutaj

Test #1

Test #2

Test #3

Argumenty

s = "noon"
t = "deed"

Oczekiwany wynik

true