mirror of
https://github.com/halfrost/LeetCode-Go.git
synced 2025-07-24 02:14:00 +08:00
规范格式
This commit is contained in:
@ -0,0 +1,39 @@
|
||||
package leetcode
|
||||
|
||||
// 解法一
|
||||
func findRepeatedDnaSequences(s string) []string {
|
||||
if len(s) < 10 {
|
||||
return nil
|
||||
}
|
||||
charMap, mp, result := map[uint8]uint32{'A': 0, 'C': 1, 'G': 2, 'T': 3}, make(map[uint32]int, 0), []string{}
|
||||
var cur uint32
|
||||
for i := 0; i < 9; i++ { // 前9位,忽略
|
||||
cur = cur<<2 | charMap[s[i]]
|
||||
}
|
||||
for i := 9; i < len(s); i++ {
|
||||
cur = ((cur << 2) & 0xFFFFF) | charMap[s[i]]
|
||||
if mp[cur] == 0 {
|
||||
mp[cur] = 1
|
||||
} else if mp[cur] == 1 { // >2,重复
|
||||
mp[cur] = 2
|
||||
result = append(result, s[i-9:i+1])
|
||||
}
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
// 解法二
|
||||
func findRepeatedDnaSequences1(s string) []string {
|
||||
if len(s) < 10 {
|
||||
return []string{}
|
||||
}
|
||||
ans, cache := make([]string, 0), make(map[string]int)
|
||||
for i := 0; i <= len(s)-10; i++ {
|
||||
curr := string(s[i : i+10])
|
||||
if cache[curr] == 1 {
|
||||
ans = append(ans, curr)
|
||||
}
|
||||
cache[curr]++
|
||||
}
|
||||
return ans
|
||||
}
|
Reference in New Issue
Block a user