📑 题目:205. 同构字符串

🚀 本题 LeetCode 传送门

题目大意

这道题和第 290 题基本是一样的。第 290 题是模式匹配,这道题的题意是字符串映射,实质是一样的。

给定一个初始字符串串,判断初始字符串是否可以通过字符映射的方式,映射到目标字符串,如果可以映射,则输出 true,反之输出 false。

解题思路

这道题做法和第 290 题基本一致。

代码

  1. package leetcode
  2. func isIsomorphic(s string, t string) bool {
  3. strList := []byte(t)
  4. patternByte := []byte(s)
  5. if (s == """" && t != """") || (len(patternByte) != len(strList)) {
  6. return false
  7. }
  8. pMap := map[byte]byte{}
  9. sMap := map[byte]byte{}
  10. for index, b := range patternByte {
  11. if _, ok := pMap[b]; !ok {
  12. if _, ok = sMap[strList[index]]; !ok {
  13. pMap[b] = strList[index]
  14. sMap[strList[index]] = b
  15. } else {
  16. if sMap[strList[index]] != b {
  17. return false
  18. }
  19. }
  20. } else {
  21. if pMap[b] != strList[index] {
  22. return false
  23. }
  24. }
  25. }
  26. return true
  27. }