問題
原文
Given two strings
s
andt
, determine if they are isomorphic.Two strings
s
andt
are isomorphic if the characters ins
can be replaced to gett
.All occurrences of a character must be replaced with another character while preserving the order of characters. No two characters may map to the same character, but a character may map to itself.
Example 1:
12 Input: s = "egg", t = "add"Output: trueExample 2:
12 Input: s = "foo", t = "bar"Output: falseExample 3:
12 Input: s = "paper", t = "title"Output: true
Constraints:
1 <= s.length <= 5 * 104
t.length == s.length
s
andt
consist of any valid ascii character.
内容
2つの文字列sとtが与えられたとき、それらが同型であるかどうかを判定しなさい。
2つの文字列sとtは、sの文字を置き換えてtを得ることができる場合、同型である。
ある文字の出現箇所はすべて、文字の順序を保ったまま別の文字に置き換える必要がある。2つの文字が同じ文字に対応することはできないが、1つの文字がそれ自身に対応することはできる。
※正しくない可能性があります。
解答
解答1:Python
1 2 3 4 5 6 7 8 9 10 11 12 13 |
class Solution: def isIsomorphic(self, s: str, t: str) -> bool: s_index = [] t_index = [] for i in range(len(s)): s_index.append(s.index(s[i])) t_index.append(t.index(t[i])) if s_index == t_index: return True else: return False |
sとtの各文字のインデックスを新たなリストに記録しておき、記録したリストどうしが同値であるかを判定する。
解答2:
メモ・参考・感想
■感想
最初はハッシュテーブルを使った解答を作っていたのだけど、添字を使った要素の指定が下手なので要練習。
コメント