同构字符串
题目描述:
给定两个字符串 s 和 t,判断它们是否是同构的。
如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。
所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身
思路:
使用 Map 解决一一对应问题, key 存 s 中的字符, value 中存 t 中对应 s 的映射;
Map 中只能存在一个 key 但是可以存在多个相同的 value, 即 key -> value, 即 A 中每个元素只能对应一个 B 中的元素 , 但是 B 中的一个元素可以对应多个 A 中的元素;
这个题比较特殊, 要求的应该是 key < – > value, 即 B 中的每个元素也只能对应 A 中的一个元素, 所以应该用 containsValue 保证 B 中的元素没有建立映射关系
代码实现:
public boolean isIsomorphic(String s, String t) {
//如果 s 和 t 的长度不相等, 直接