037 · Isomorphic Strings
algorithm
Problem
给定两个字符串 s 和 t。
请判断:s 和 t 是否是同构字符串。
“同构”的意思是:可以把 s 中的每个字符替换成另一个字符,从而得到 t。
替换时需要满足两个条件:
- 同一个字符每次都必须替换成同一个字符
- 不同字符不能替换成同一个字符
字符可以替换成自己。
例如:
s = "egg"
t = "add"
s 里的 "e" 可以替换成 "a","g" 可以替换成 "d"。
这样 "egg" 就能变成 "add",所以答案是:
true
再比如:
s = "foo"
t = "bar"
s 里的两个 "o" 必须替换成同一个字符,但在 t 中对应的位置分别是 "a" 和 "r",不一致,所以答案是:
false
Examples
示例 1
Input: s = "egg", t = "add"
Output: true
解释:可以把 "e" 替换成 "a",把 "g" 替换成 "d"。
示例 2
Input: s = "foo", t = "bar"
Output: false
解释:两个 "o" 应该对应同一个字符,但它们分别对应了 "a" 和 "r"。
示例 3
Input: s = "paper", t = "title"
Output: true
解释:"p" 对应 "t","a" 对应 "i","e" 对应 "l","r" 对应 "e",每个对应关系都保持一致。
Constraints
- \(1 \leq\)
s.length\(\leq 5 * 10^4\) t.length == s.lengths和t可以包含任意有效的 ASCII 字符
Link
→ Solution