205. 同构字符串

内容

给定两个字符串 s 和 t,判断它们是否是同构的。

如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。

所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身。

示例 1:

输入: s = "egg", t = "add"
输出: true
示例 2:

输入: s = "foo", t = "bar"
输出: false
示例 3:

输入: s = "paper", t = "title"
输出: true
说明:
你可以假设 s 和 t 具有相同的长度。


思路

将s和t分别替换成以数字1开头的组合,
规则:遇到第一个陌生字符,用1表示,并记录到map中,以后再次遇到这个字符,直接用map中记录的值来表示
当s,t都被替换成这种组合后,比较是否相同即可


代码

/**
将s和t分别替换成以数字1开头的组合,
规则:遇到第一个陌生字符,用1表示,并记录到map中,以后再次遇到这个字符,直接用map中记录的值来表示
当s,t都被替换成这种组合后,比较是否相同即可

 * @param {string} s
 * @param {string} t
 * @return {boolean}
 */
var isIsomorphic = function (s, t) {
    var map = {};
    var index = 1;
    var result = '',
        result2 = '';
    for (var i of s) {
        map[i] ? null : (map[i] = index, index++);
        result += map[i]
    }

    map = {};
    index = 1;
    for (var i of t) {
        map[i] ? null : (map[i] = index, index++);
        result2 += map[i]
    }

    return result == result2;
};

回到目录

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,399评论 19 139
  • 养生是一辈子的事情 一辈子的事情是养生
    绿洲家园阅读 227评论 1 1
  • 天分享最新商业资讯、趋势、深度好文、成功案例、时事、新闻、把握财经动态、修身兴业、国家大事。喜欢学习,阅读的企业家...
    吉祥如意_96fe阅读 227评论 0 0
  • 最近多起虐童、性侵害儿童案件的发生,让我们做家长的心纠到一块,不得不将儿童安全教育提到第一位!特别是性安全,说深了...
    又又妈阅读阅读 1,207评论 0 2
  • 朋友在公司人缘一直很好,早上跟同事热情地打招呼,晚上跟同事开心地说再见,上班时主动帮助别人处理麻烦事。这样的朋友,...
    漫舒110阅读 471评论 1 3

友情链接更多精彩内容