Skip to content

Latest commit

 

History

History
45 lines (34 loc) · 1.65 KB

205.md

File metadata and controls

45 lines (34 loc) · 1.65 KB

✏️Leetcode基础刷题之(205.lsomorphic Strings)

2019-03-17 吴亲库里 库里的深夜食堂


✏️描述

同构字符串。给定两个字符串,判断他们是否是同构字符串。所有出现的字符都必须用另一个字符替代,并且字符串的顺序不能改变,两个不同字符不能同时映射到一个字符上,但是可以映射自己本身。


✏️题目实例

✏️题目分析

就像上面说的demo中用d映射g,e映射a所有是同构字符串。demo2中第一次a映射o,第二次变成r映射o,这就违反了两个字符不能同时映射一个字符上的原则,所有false。可以设置两个数组,分别用来记录两个字符串出现情况,然后遍历字符串,取两个字符串的值在数组中查找,如果不相等 ,说明他们就不是同构字符串,否则接着比较下一位,道理很简单

     
    /**
     * @param String $s
     * @param String $t
     * @return Boolean
     */
    function isIsomorphic($s, $t) {
        $a=[];
        $b=[];
        for($i=0;$i<strlen($t);$i++){
            if($a[$s[$i]] != $b[$t[$i]]) return false;
            $a[$s[$i]]=$i+1;
            $b[$t[$i]]=$i+1;
        }
        return true;
    }

联系