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.
For example,
Given "egg"
, "add"
, return true.
Given "foo"
, "bar"
, return false.
Given "paper"
, "title"
, return true.
Note:
You may assume both s and t have the same length.
js里基本类型用或判断初始化还是要小心,一不小心就入坑
/**
* @param {string} s
* @param {string} t
* @return {boolean}
*/
var isIsomorphic = function(s, t) {
var map1 = {};
var map2 = {};
for(var i = 0,l = s.length;i<l;i++){
var code = s.charCodeAt(i);
var code2 = t.charCodeAt(i);
var v = "res"+(code - code2);
map1[code] = map1[code] || v;
map2[code2] = map2[code2] || v;
if((map1[code] != v)||(map2[code2] != v)){
return false;
}
}
return true;
};