def is_isomorphic(s,t):
return len(set(zip(s,t)))==len(set(s))==len(set(t))
public boolean isIsomorphic(String s,String t){
Map<Character,Character> st=new HashMap<>(),ts=new HashMap<>();
for(int i=0;i<s.length();i++){
char sc=s.charAt(i),tc=t.charAt(i);
if(st.containsKey(sc)&&st.get(sc)!=tc) return false;
if(ts.containsKey(tc)&&ts.get(tc)!=sc) return false;
st.put(sc,tc); ts.put(tc,sc);
} return true;
}
Python zip+set one-liner. Java explicit bidirectional maps.
def is_isomorphic(s,t):
return len(set(zip(s,t)))==len(set(s))==len(set(t))
public boolean isIsomorphic(String s,String t){
Map<Character,Character> st=new HashMap<>(),ts=new HashMap<>();
for(int i=0;i<s.length();i++){
char sc=s.charAt(i),tc=t.charAt(i);
if(st.containsKey(sc)&&st.get(sc)!=tc) return false;
if(ts.containsKey(tc)&&ts.get(tc)!=sc) return false;
st.put(sc,tc); ts.put(tc,sc);
} return true;
}
1. Check bijection both ways