• leetcode刷题笔记 一百八十七题


    leetcode刷题笔记 一百八十七题

    源地址:187. 重复的DNA序列

    问题描述:

    所有 DNA 都由一系列缩写为 A,C,G 和 T 的核苷酸组成,例如:“ACGAATTCCG”。在研究 DNA 时,识别 DNA 中的重复序列有时会对研究非常有帮助。

    编写一个函数来查找目标子串,目标子串的长度为 10,且在 DNA 字符串 s 中出现次数超过一次。

    示例:

    输入:s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT"
    输出:["AAAAACCCCC", "CCCCCAAAAA"]

    //本题解法主要基于动态窗口思想,从头至尾逐次获取从长度为10的子串判断是否出现过,若出现过,则加入res中
    import scala.collection.mutable
    object Solution {
        def findRepeatedDnaSequences(s: String): List[String] = {
            val length = s.length
            val hs = mutable.HashSet[String]()
            //这里res是为了排除多次重复的串多次放入结果集合
            val res = mutable.HashSet[String]()
    
            for (i <- 0 to length-10){
                val temp = s.substring(i, i+10)
                if (hs.contains(temp)) res.add(temp)
                hs.add(temp)
            }
    
            return res.toList
        }
    }
    
  • 相关阅读:
    F. Journey
    D. Divide
    C. Counting Pair
    A. A Big Dinner
    E
    D -Sale
    第十三课 历史记录画笔工具
    第十二课 文字工具
    第十一课 模糊工具、海绵工具、仿制图章工具
    第十课 切片工具 修复画笔工具 修补工具 颜色替换工具
  • 原文地址:https://www.cnblogs.com/ganshuoos/p/13672901.html
Copyright © 2020-2023  润新知