胜者先胜而后求战,败者先站而后求胜
同构字符串
进入 Leet Code 查看题目:https://leetcode-cn.com/problems/isomorphic-strings/
给定两个字符串 s 和 t ,判断它们是否是同构的。
如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。
每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。
示例1:
1 |
|
示例2:
1 |
|
分析
只要保证 s 中的字符和 t 中的字符一一对应,那么字符串 s 和字符串 t 就是同构字符串。
例一:
s = "egg", t = "add"
其中 e -> a g -> d, 所以字符串 s 和字符串 t 是同构字符串。
例二:
s = "foo", t = "bar"
其中 f -> b o -> a o -> r, 字符 o 同时对应 a 和 r,所以字符串 s 和字符串 t 不是同构字符串。
利用哈希表存储 s 中每个字符对应的 t 中的字符,如果发现重复则不是同构字符串,同样利用哈希表存储 t 中的每个字符对应的 s 中的字符,如果发现重复则不是同构字符串。
图解

代码
1 |
|