Легкий
Проблема
Имея две строки s и t, определите, изоморфны ли они.
Две строки изоморфны, если символы в s можно заменить, чтобы получить t.
Все вхождения символа должны быть заменены другим символом с сохранением порядка символов. Никакие два символа не могут отображаться на один и тот же символ, но символ может отображаться на самого себя.
Пример 1:
Input: s ="egg",
t ="add"
Output: true
Пример 2:
Input: s ="foo",
t ="bar"
Output: false
Пример 3:
Input: s ="paper",
t ="title"
Output: true
Примечание.
Вы можете предположить, что и s, и t имеют одинаковая длина.
Решение
Используйте две дополнительные хэш-карты для поддержания отношений отображения между двумя строками.
сложность
Для повторения s
и t
требуется время O(n), если n
обозначает длину этих двух списков. На каждой итерации операции поиска и вставки хэш-карты будут занимать время O(1)/O(logn) в среднем/худшем случае. Таким образом, временная сложность будет O(n)/O(nlogn) в среднем/худшем случае.
Кроме того, из-за двух хэш-карт его пространственная сложность составляет O(n + n) = O(n).