LeetCode問題解-python 205.アイソメトリック文字列Isomorphic Strings(Easy)
4342 ワード
LeetCode問題解-python 205.アイソメトリック文字列Isomorphic Strings(Easy) 解題構想 github タイトルコード(python 3) 205.アイソトープ文字列Isomorphic Strings(Easy)
2つの文字列sおよびtが与えられ、それらが同構造であるか否かが判断される.s中の文字を置換してtを得ることができる場合、この2つの文字列は同構造である.表示されるすべての文字は、文字の順序を保持しながら別の文字で置換する必要があります.2つの文字は同じ文字にマッピングできませんが、文字は自分自身をマッピングできます.例1:入力:s=「egg」、t=「add」出力:true例2:入力:s=「foo」、t=「bar」出力:false例3:入力:s=「paper」、t=「title」出力:true説明:sとtが同じ長さであると仮定できます.
問題を解く構想.
同性:2つの文字列は1つずつ対応し、順序は2つの文字列(シリアル1、シリアル2)を辞書のkeyとvalueにそれぞれ保存することはできません.シリアル1のxがkeyにあるが、x対応のvalueがシリアル2にない場合はエラーです.シリアル1のxがkeyにないが、シリアル2の値がvalueにある場合はエラーです.Enumerate()関数は、リスト、メタグループ、文字列などの遍歴可能なデータオブジェクトをインデックスシーケンスに結合し、forループで一般的に使用されるデータとデータの下付き文字をリストするために使用されます.
説明がはっきりしているかどうか分かりません(#.#)コードを体得すれば分かるので間違いがあるところはご指摘ください
github
リンク:https://github.com/seattlegirl/leetcode/blob/master/isomorphic-strings.py.
タイトルコード(python 3)
2つの文字列sおよびtが与えられ、それらが同構造であるか否かが判断される.s中の文字を置換してtを得ることができる場合、この2つの文字列は同構造である.表示されるすべての文字は、文字の順序を保持しながら別の文字で置換する必要があります.2つの文字は同じ文字にマッピングできませんが、文字は自分自身をマッピングできます.例1:入力:s=「egg」、t=「add」出力:true例2:入力:s=「foo」、t=「bar」出力:false例3:入力:s=「paper」、t=「title」出力:true説明:sとtが同じ長さであると仮定できます.
問題を解く構想.
同性:2つの文字列は1つずつ対応し、順序は2つの文字列(シリアル1、シリアル2)を辞書のkeyとvalueにそれぞれ保存することはできません.シリアル1のxがkeyにあるが、x対応のvalueがシリアル2にない場合はエラーです.シリアル1のxがkeyにないが、シリアル2の値がvalueにある場合はエラーです.Enumerate()関数は、リスト、メタグループ、文字列などの遍歴可能なデータオブジェクトをインデックスシーケンスに結合し、forループで一般的に使用されるデータとデータの下付き文字をリストするために使用されます.
説明がはっきりしているかどうか分かりません(#.#)コードを体得すれば分かるので間違いがあるところはご指摘ください
github
リンク:https://github.com/seattlegirl/leetcode/blob/master/isomorphic-strings.py.
タイトルコード(python 3)
class Solution:
def isIsomorphic(self, s, t):
"""
:type s: str
:type t: str
:rtype: bool
"""
dic={}
for i,x in enumerate(s):
if x in dic.keys() and dic[x]!=t[i]:
return False
elif x not in dic.keys() and t[i] in dic.values():
return False
else:
dic[x]=t[i]
return True
if __name__ == "__main__":
print Solution().isIsomorphic("egg", "add")