zoukankan      html  css  js  c++  java
  • [LeetCode] Isomorphic Strings

    Isomorphic Strings

    Total Accepted: 30898 Total Submissions: 120944 Difficulty: Easy

    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.

    /**
     * @param {string} s
     * @param {string} t
     * @return {boolean}
     */
    var isIsomorphic = function(s, t) {
        var sp = 0;
        var tp = 0;
        
        var sm = {};
        var tm = {};
        
        if (s.length != t.length) return false;
        
        var st = "";
        for (var i = 0; i < s.length; i++) {
            if (sm[s[i]] == void 0) {
                sm[s[i]] = sp++;
            }
            st += sm[s[i]];
        }
        
        var tt = "";
        for (var i = 0; i < t.length; i++) {
            if (tm[t[i]] == void 0) {
                tm[t[i]] = tp++;
            }
            tt += tm[t[i]];
        }
        
        if (st == tt) return true;
        return false;
    };

    好像是word pattern 的姊妹题,这题是找pattern,所以比找match 要容易点。最简单的办法就是利用哈希表和一个递增的整数来把字符串归一化,如果归一化后的结果是一样的则是相同pattern 的字符串。javasscript 写起来方便但是要注意 !0 == true,所以改为判断和void 0 比较了。

  • 相关阅读:
    TStringList 常用操作(转自南山古陶)
    在Delphi中使用Indy控件实现邮件群发
    GSM手机SMS编码解码
    建别人进不了删不掉的文件夹
    播放 wav 文件
    delphi inherited,纯虚
    PDU编码规则
    sql函数
    基于GPRS的LED电子显示屏
    结对编程 队友代码分析
  • 原文地址:https://www.cnblogs.com/agentgamer/p/4864533.html
Copyright © 2011-2022 走看看