Blogs Hub

Isomorphic Strings - Hash Table - Easy - LeetCode - MiniTV

Isomorphic Strings - Hash Table - Easy - LeetCode - मिनी टीवी

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)