leetcode刷題筆記 一百八十七題
阿新 • • 發佈:2020-09-15
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 } }