1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// @Title: 同构字符串 (Isomorphic Strings)
// @Author: 15816537946@163.com
// @Date: 2020-12-27 11:58:02
// @Runtime: 8 ms
// @Memory: 2.5 MB
func isIsomorphic(s string, t string) bool {
	if len(s) == 0 {
		return true
	}
	s2t := make(map[byte]byte)
	t2s := make(map[byte]byte)

	for i := range s {
		x, y := s[i], t[i]
		if s2t[x] > 0 && s2t[x] != y || t2s[y] > 0 && t2s[y] != x {
			return false
		}
		s2t[x] = y
		t2s[y] = x
	}
	return true

}