mirror of
https://github.com/halfrost/LeetCode-Go.git
synced 2025-07-05 16:36:41 +08:00
规范格式
This commit is contained in:
29
leetcode/0205.Isomorphic-Strings/205. Isomorphic Strings.go
Normal file
29
leetcode/0205.Isomorphic-Strings/205. Isomorphic Strings.go
Normal file
@ -0,0 +1,29 @@
|
||||
package leetcode
|
||||
|
||||
func isIsomorphic(s string, t string) bool {
|
||||
strList := []byte(t)
|
||||
patternByte := []byte(s)
|
||||
if (s == "" && t != "") || (len(patternByte) != len(strList)) {
|
||||
return false
|
||||
}
|
||||
|
||||
pMap := map[byte]byte{}
|
||||
sMap := map[byte]byte{}
|
||||
for index, b := range patternByte {
|
||||
if _, ok := pMap[b]; !ok {
|
||||
if _, ok = sMap[strList[index]]; !ok {
|
||||
pMap[b] = strList[index]
|
||||
sMap[strList[index]] = b
|
||||
} else {
|
||||
if sMap[strList[index]] != b {
|
||||
return false
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if pMap[b] != strList[index] {
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
@ -0,0 +1,58 @@
|
||||
package leetcode
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
)
|
||||
|
||||
type question205 struct {
|
||||
para205
|
||||
ans205
|
||||
}
|
||||
|
||||
// para 是参数
|
||||
// one 代表第一个参数
|
||||
type para205 struct {
|
||||
one string
|
||||
two string
|
||||
}
|
||||
|
||||
// ans 是答案
|
||||
// one 代表第一个答案
|
||||
type ans205 struct {
|
||||
one bool
|
||||
}
|
||||
|
||||
func Test_Problem205(t *testing.T) {
|
||||
|
||||
qs := []question205{
|
||||
|
||||
question205{
|
||||
para205{"egg", "add"},
|
||||
ans205{true},
|
||||
},
|
||||
|
||||
question205{
|
||||
para205{"foo", "bar"},
|
||||
ans205{false},
|
||||
},
|
||||
|
||||
question205{
|
||||
para205{"paper", "title"},
|
||||
ans205{true},
|
||||
},
|
||||
|
||||
question205{
|
||||
para205{"", ""},
|
||||
ans205{true},
|
||||
},
|
||||
}
|
||||
|
||||
fmt.Printf("------------------------Leetcode Problem 205------------------------\n")
|
||||
|
||||
for _, q := range qs {
|
||||
_, p := q.ans205, q.para205
|
||||
fmt.Printf("【input】:%v 【output】:%v\n", p, isIsomorphic(p.one, p.two))
|
||||
}
|
||||
fmt.Printf("\n\n\n")
|
||||
}
|
50
leetcode/0205.Isomorphic-Strings/README.md
Normal file
50
leetcode/0205.Isomorphic-Strings/README.md
Normal file
@ -0,0 +1,50 @@
|
||||
# [205. Isomorphic Strings](https://leetcode.com/problems/isomorphic-strings/)
|
||||
|
||||
## 题目
|
||||
|
||||
Given two strings s and t, determine if they are isomorphic.
|
||||
|
||||
Two strings are isomorphic if the characters in s can be replaced to get t.
|
||||
|
||||
All occurrences of a character must be replaced with another character while preserving the order of characters. No two characters may map to the same character but a character may map to itself.
|
||||
|
||||
Example 1:
|
||||
|
||||
```c
|
||||
Input: s = "egg", t = "add"
|
||||
Output: true
|
||||
```
|
||||
|
||||
Example 2:
|
||||
|
||||
```c
|
||||
Input: s = "foo", t = "bar"
|
||||
Output: false
|
||||
```
|
||||
|
||||
Example 3:
|
||||
|
||||
```c
|
||||
Input: s = "paper", t = "title"
|
||||
Output: true
|
||||
```
|
||||
|
||||
Note:
|
||||
|
||||
You may assume both s and t have the same length.
|
||||
|
||||
|
||||
|
||||
|
||||
## 题目大意
|
||||
|
||||
这道题和第 290 题基本是一样的。第 290 题是模式匹配,这道题的题意是字符串映射,实质是一样的。
|
||||
|
||||
给定一个初始字符串串,判断初始字符串是否可以通过字符映射的方式,映射到目标字符串,如果可以映射,则输出 true,反之输出 false。
|
||||
|
||||
## 解题思路
|
||||
|
||||
这道题做法和第 290 题基本一致。
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user