0
点赞
收藏
分享

微信扫一扫

哈希表与字符串的相关题目-重复的DNA序列

西特张 2022-07-27 阅读 61


哈希表与字符串的相关题目-重复的DNA序列_leetcode


哈希表与字符串的相关题目-重复的DNA序列_leetcode_02


哈希表与字符串的相关题目-重复的DNA序列_leetcode_03


哈希表与字符串的相关题目-重复的DNA序列_leetcode_04


哈希表与字符串的相关题目-重复的DNA序列_leetcode_05


哈希表与字符串的相关题目-重复的DNA序列_leetcode_06

class Solution {
public:
int returnChar(char c){
switch(c){
case 'A':
return 0;
case 'C':
return 1;
case 'G':
return 2;
case 'T':
return 3;
}
return 0;
}
vector<string> findRepeatedDnaSequences(string s) {
int n = s.length();
vector<string> res;
if(n<=10) return res;
bitset<1<<20>S1;
bitset<1<<20>S2;
int val = 0;
for(int i=0;i<10;++i)
val = (val<<2)|returnChar(s[i]);
S1.set(val);
int mask = (1<<20)-1;
for(int i=10;i<n;++i){
val = ((val<<2)&mask)|returnChar(s[i]);
if(S2[val])
continue;
if(S1[val]){
res.push_back(s.substr(i-9,10));
S2.set(val);
}else{
S1.set(val);
}
}
return res;
}
};


举报

相关推荐

0 条评论