Leetcode 187.重复的DNA序列
生活随笔
收集整理的這篇文章主要介紹了
Leetcode 187.重复的DNA序列
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
重復的DNA序列
所有 DNA 由一系列縮寫為 A,C,G 和 T 的核苷酸組成,例如:"ACGAATTCCG"。在研究 DNA 時,識別 DNA 中的重復序列有時會對研究非常有幫助。
編寫一個函數來查找 DNA 分子中所有出現超多一次的10個字母長的序列(子串)。
示例:
輸入: s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT"
?
輸出: ["AAAAACCCCC", "CCCCCAAAAA"]
?
思路:將字符串中所有長度為10的子串以及出現的次數用map保存,但是需要消耗很大的空間。
考慮到只有4中可能的字符A,C,G,T;可以對字符進行編碼,用2bit來表示一個字符,一個含有10個字符的子串只要20bit就能表示,用一個int類型就能表示。
總長度為n的字符串,可能的子串共有n-9種,因此最多用n-9個int就能表示所有的字符組合。最壞的情況下,20bit共有2^20中組合,即1024*1024,
一個int類型4byte,因此額外消耗4MB的二外空間。
?
?
轉載于:https://www.cnblogs.com/kexinxin/p/10202996.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Leetcode 187.重复的DNA序列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GALV_maptravel研究分析(1
- 下一篇: centos7 yum 安装lnmp