63 - 同构字符串

题目

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

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

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

示例 1:

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

示例 2:

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

示例 3:

输入: s = "paper", t = "title" 输出: true

说明: 你可以假设 s 和 t 具有相同的长度。

解答

两个字典

作者:vailing

链接:https://leetcode-cn.com/problems/isomorphic-strings/solution/jiao-cha-ying-she-by-vailing/

建立一个哈希表来放对应

但一个表不能避免ab对应aa的情况,因此就再建一个表,对应相反的。

Runtime: 92 ms, faster than 9.57% of JavaScript online submissions forIsomorphic Strings.

Memory Usage: 36.8 MB, less than 29.41% of JavaScript online submissions for Isomorphic Strings.

速度有点慢哈

用map代替obj,也许能好一点点

Runtime: 76 ms, faster than 30.57% of JavaScript online submissions for Isomorphic Strings.

Memory Usage: 36.5 MB, less than 52.94% of JavaScript online submissions for Isomorphic Strings.

看到另一种解法:

作者:ldq-2

链接:https://leetcode-cn.com/problems/isomorphic-strings/solution/205tong-gou-zi-fu-chuan-javascript-jie-ti-by-ldq-2/

Runtime: 100 ms, faster than 6.74% of JavaScript online submissions for Isomorphic Strings.

Memory Usage: 35.8 MB, less than 70.59% of JavaScript online submissions for Isomorphic Strings.

内存占用得少,可能是因为判断没那么复杂了吧

indexof

这个骚操作说的是,不用管映射,如果两个字符串是同构的,那么他们的结构就是一样的。s重复字母的地方,t也会重复字母。

Runtime: 56 ms, faster than 95.90% of JavaScript online submissions for Isomorphic Strings.

Memory Usage: 35.2 MB, less than 88.24% of JavaScript online submissions for Isomorphic Strings.

indexOf能返回某个指定的字符串值在字符串中首次出现的位置。

第一个参数是要找的那串字符,在这里就是一个字母;第二个参数是开始检索的位置,最多到length-1

所以,如果字母后面有重复,而且重复的位置一样,那么就算通过;如果有重复,但地方不一样,那么结构就不一样。

感觉这是一下子击中了本质的做法😂😂

go

Runtime: 8 ms, faster than 13.98% of Go online submissions forIsomorphic Strings.

Memory Usage: 2.7 MB, less than 100.00% of Go online submissions for Isomorphic Strings.

go里面可以一个个取字符串,不过取出来的是其对应的utf-8的值,比如1对应的是49

不过无所谓,反正存的值是不会变的,只是类型定义的时候,存进去的就不是string,而是uint8

Runtime: 0 ms, faster than 100.00% of Go online submissions forIsomorphic Strings.

Memory Usage: 2.7 MB, less than 100.00% of Go online submissions for Isomorphic Strings.

Last updated

Was this helpful?