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 = "title" Output: true Note: You may assume both s and t have the same length.
public class Solution {
public bool IsIsomorphic(string s, string t) {
if(s.Length != t.Length){
return false;
}
var map1 = new Dictionary<char,char>();
var map2 = new Dictionary<char,char>();
for(int i=0;i<s.Length;i++){
if(map1.ContainsKey(s[i])){
map1[s[i]] = t[i];
}
else{
map1.Add(s[i],t[i]);
}
if(map2.ContainsKey(t[i])){
map2[t[i]] = s[i];
}
else{
map2.Add(t[i],s[i]);
}
}
for(int i=0;i<s.Length;i++){
if(map1[s[i]]!=t[i]){
return false;
}
if(map2[t[i]]!=s[i]){
return false;
}
}
return true;
}
}
Time Complexity: O(n)
Space Complexity: O(n)


