Given two strings s and t, determine if they are isomorphic.

Two strings are isomorphic if the characters in s can be replaced to get t.

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:

Input: s = \"egg\", t = \"add\"
Output: true

Example 2:

Input: s = \"foo\", t = \"bar\"
Output: false

Example 3:

Input: s = \"paper\", t = \" \"
Output: true

Note:
You may assume both and have the same length.

 

Answer:

class Solution( ):
    def isIsomorphic(self, s, t):
        \"\"\"
        :type s: str
        :type t: str
        :rtype: bool
        \"\"\"
        mapdict={}
        
        l=len(s)
        
        for i in range(l):
            sc=s[i]
            tc=t[i]
            
            if mapdict.has_key(s[i]):
                if mapdict[s[i]]!=t[i]:
                    return False
            elif t[i] in mapdict.values():
                return False
            else:
                mapdict[s[i]]=t[i]
                
        return True
                

 

收藏 打印