题解 | #重复的DNA序列#

重复的DNA序列

https://www.nowcoder.com/practice/fe9099e5308042a8af2f7aabdb3719fe?tpId=196&tqId=39413&ru=/exam/oj

2023.12.14 笔试题

之前在LeetCode做过一样的题,对输出的顺序不做要求,顺利AC

笔试题通过71%,做完来看,需要引入两个hash表,一个记录出现次数,一个记录出现位置

package main

import "sort"

// import (
// 	"fmt"
// 	"go/scanner"
// )

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 *
 * @param DNA string字符串 1
 * @return string字符串一维数组
 */
func repeatedDNA( DNA string ) []string {
    // write code here
    ans := []string{}
    hash1 := make(map[string]int)
    hash2 := make(map[string]int)
    for i := 0; i <= len(DNA)-10; i++ {
        sub := DNA[i : i+10]
        hash1[sub]++
        if hash1[sub] == 2 {
            ans = append(ans, sub)
        }else{
            hash2[sub] = i
        }
    }
    sort.Slice(ans, func(i, j int) bool{
        return hash2[ans[i]] < hash2[ans[j]]
    })
    return ans
}

全部评论

相关推荐

点赞 评论 收藏
分享
喜欢吃蛋糕仰泳鲈鱼是我的神:字节可以找个hr 给你挂了,再放池子捞
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务