Two strings ```a``` and b are called isomorphic if there is a one to one mapping possible for every character of ```a``` to every character of ```b```. And all occurrences of every character in ```a``` map to same character in ```b```.

## Task

In this kata you will create a function that return ```True``` if two given strings are isomorphic to each other, and ```False``` otherwise. Remember that order is important.

Your solution must be able to handle words with more than 10 characters.

## Example
True:
```
CBAABC DEFFED
XXX YYY
RAMBUNCTIOUSLY THERMODYNAMICS
```

False:
```
AB CC
XXY XYY
ABAB CD
```

Difficulty: introductory

Starter code:

def isomorph(a, b):
	

Solutions:
def isomorph(a, b):
  return [a.index(x) for x in a] == [b.index(y) for y in b]


from itertools import zip_longest

def isomorph(a, b):
    return len(set(a)) == len(set(b)) == len(set(zip_longest(a, b)))

def isomorph(s, t):
  if len(s) != len(t):
        return False
  p= set(zip(s, t))
  return all(len(p) == len(set(c)) for c in zip(*p))

def isomorph(a, b):
    return len(a) == len(b) and len(set(a)) == len(set(b)) == len(set(zip(a, b)))

def isomorph(a, b):
    normalize = lambda s: [s.index(c) for c in s]
    return normalize(a) == normalize(b)

def isomorph(a, b):
    return len(a) == len(b) and a.translate(str.maketrans(a, b)) == b and b.translate(str.maketrans(b, a)) == a

def isomorph(a, b):
    return [a.index(h) for h in a]==[b.index(g) for g in b]
  # Happy coding!


from collections import defaultdict

def isomorph(a, b):
    print(a, b)
    da,db = defaultdict(list), defaultdict(list)
    for i in range(len(a)==len(b) and len(a)):
        if da[a[i]] != db[b[i]]: return False
        da[a[i]].append(i)
        db[b[i]].append(i)
    return bool(da)

def isomorph(a, b):
    if len(a)!=len(b):
        return False
    st={}
    for i in range(len(a)):
        if a[i] not in list(st.keys()) and b[i]  in list(st.values()):
            return False
        if a[i] not in list(st.keys()) and b[i] not in list(st.values()):
            st[a[i]]=b[i]
        elif st[a[i]]!=b[i] :#or a[i] not in st.keys() and b[i]  in st.values():
             return False
    return True
  # Happy coding!


def isomorph(a, b):
    print((a, b))
    if(len(a) != len(b)):
            return False
    m = {} # mapping of each character in a to b
    r = {} # mapping of each character in b to a
    for i, c in enumerate(a):
        if c in m:
            if b[i] != m[c]:
                return False
        else:
            m[c] = b[i]
        if b[i] in r:
            if c != r[b[i]]:
                return False
        else:
            r[b[i]] = c
    print('True')
    return True