LeetCode 187. 重复的DNA序列(哈希/位运算)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 187. 重复的DNA序列(哈希/位运算)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1. 題目
所有 DNA 都由一系列縮寫為 A,C,G 和 T 的核苷酸組成,例如:“ACGAATTCCG”。
在研究 DNA 時(shí),識(shí)別 DNA 中的重復(fù)序列有時(shí)會(huì)對(duì)研究非常有幫助。
編寫一個(gè)函數(shù)來查找 DNA 分子中所有出現(xiàn)超過一次的 10 個(gè)字母長的序列(子串)。
示例: 輸入:s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT" 輸出:["AAAAACCCCC", "CCCCCAAAAA"]來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/repeated-dna-sequences
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
2. 解題
2.1 哈希
class Solution { public:vector<string> findRepeatedDnaSequences(string s) {if(s.size() <= 10)return {};unordered_map<string,int> m;int i = 0;while(i < s.size()-9)m[s.substr(i++,10)]++;vector<string> ans;for(auto it = m.begin(); it != m.end(); ++it){if(it->second > 1)ans.push_back(it->first);}return ans;} };120 ms 23.1 MB
2.2 位運(yùn)算
- 用0-3來表示四種字符,二進(jìn)制只需要2位,總共20位即可表示10個(gè)字符
88 ms 14.9 MB
總結(jié)
以上是生活随笔為你收集整理的LeetCode 187. 重复的DNA序列(哈希/位运算)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 536. 从字符串生成
- 下一篇: LeetCode 1457. 二叉树中的