同构字符串

题目

205. 同构字符串

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

如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。

每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。

示例 1:

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

示例 2:

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

示例 3:

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

提示:

  • 1 <= s.length <= 5 * 104
  • t.length == s.length
  • st 由任意有效的 ASCII 字符组成

题解

290. 单词规律 同样的解法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public static boolean isIsomorphic(String pattern, String strs) {
int n = pattern.length();
if (n != strs.length()) {
return false;
}
for (int i = 0; i < n; i++) {
char ch = pattern.charAt(i);
int i2 = pattern.indexOf(ch);
char o = strs.charAt(i);
int i1 = strs.indexOf(o);
// System.out.println(ch + " " + i2 + " <=====> " + o + " " + i1);
if (i2 != i1) {
return false;
}
}
return true;
}

image-20241121224924948