304 North Cardinal St.
Dorchester Center, MA 02124

# Isomorphic Strings LeetCode Solution

## Problem – Isomorphic Strings

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

Two strings `s` and `t` 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 = "title"
Output: true``````

Constraints:

• `1 <= s.length <= 5 * 104`
• `t.length == s.length`
• `s` and `t` consist of any valid ascii character.

### Isomorphic Strings LeetCode Solution in Python

``````class Solution(object):
def isIsomorphic(self, s, t):
s2t, t2s = {}, {}
for i in range(len(s)):
if s[i] in s2t and s2t[s[i]] != t[i]:
return False
if t[i] in t2s and t2s[t[i]] != s[i]:
return False
s2t[s[i]] = t[i]
t2s[t[i]] = s[i]
return True

def isIsomorphic1(self, s, t):
d1, d2 = {}, {}
for i, val in enumerate(s):
d1[val] = d1.get(val, []) + [i]
for i, val in enumerate(t):
d2[val] = d2.get(val, []) + [i]
return sorted(d1.values()) == sorted(d2.values())

def isIsomorphic2(self, s, t):
d1, d2 = [[] for _ in xrange(256)], [[] for _ in xrange(256)]
for i, val in enumerate(s):
d1[ord(val)].append(i)
for i, val in enumerate(t):
d2[ord(val)].append(i)
return sorted(d1) == sorted(d2)

def isIsomorphic3(self, s, t):
return len(set(zip(s, t))) == len(set(s)) == len(set(t))

def isIsomorphic4(self, s, t):
return [s.find(i) for i in s] == [t.find(j) for j in t]

def isIsomorphic5(self, s, t):
return map(s.find, s) == map(t.find, t)

def isIsomorphic6(self, s, t):
d1, d2 = [0 for _ in xrange(256)], [0 for _ in xrange(256)]
for i in xrange(len(s)):
if d1[ord(s[i])] != d2[ord(t[i])]:
return False
d1[ord(s[i])] = i+1
d2[ord(t[i])] = i+1
return True
``````

### Isomorphic Strings LeetCode Solution in Java

``````public class Solution {
public boolean isIsomorphic(String s1, String s2) {
int[] m = new int;
for (int i = 0; i < s1.length(); i++) {
if (m[s1.charAt(i)] != m[s2.charAt(i)+256]) return false;
m[s1.charAt(i)] = m[s2.charAt(i)+256] = i+1;
}
return true;
}
}
``````

### Isomorphic Strings LeetCode Solution in C++

``````bool isIsomorphic(string s, string t) {
char map_s = { 0 };
char map_t = { 0 };
int len = s.size();
for (int i = 0; i < len; ++i)
{
if (map_s[s[i]]!=map_t[t[i]]) return false;
map_s[s[i]] = i+1;
map_t[t[i]] = i+1;
}
return true;
}
``````
##### Isomorphic Strings LeetCode Solution Review:

In our experience, we suggest you solve this Isomorphic Strings LeetCode Solution and gain some new skills from Professionals completely free and we assure you will be worth it.

If you are stuck anywhere between any coding problem, just visit Queslers to get the Isomorphic Strings LeetCode Solution

Find on LeetCode

##### Conclusion:

I hope this Isomorphic Strings LeetCode Solution would be useful for you to learn something new from this problem. If it helped you then don’t forget to bookmark our site for more Coding Solutions.

This Problem is intended for audiences of all experiences who are interested in learning about Data Science in a business context; there are no prerequisites.

Keep Learning!

More Coding Solutions >>

LeetCode Solutions

Hacker Rank Solutions

CodeChef Solutions