Open Mooo-star opened 1 month ago
/**
* @param {string} s
* @param {string} t
* @return {boolean}
*/
var isIsomorphic = function (s, t) {
// 定义两个映射表
const s2t = {};
const t2s = {};
const len = s.length;
for (let i = 0; i < len; ++i) {
// 得到每次遍历的数据
const x = s[i], y = t[i];
// 判断 hash 表中的数据映射是否正确
// 映射不对直接 return false
if ((s2t[x] && s2t[x] !== y) || (t2s[y] && t2s[y] !== x)) {
return false;
}
// 映射正确 / 不存在当前的映射,定义映射关系
s2t[x] = y;
t2s[y] = x;
}
return true;
};
给定两个字符串 s 和 t ,判断它们是否是同构的。
如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。
每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。
示例 1:
输入:s = "egg", t = "add" 输出:true 示例 2:
输入:s = "foo", t = "bar" 输出:false 示例 3:
输入:s = "paper", t = "title" 输出:true