Repeated DNA Sequences
来源:互联网 发布:贵金属手机交易软件 编辑:程序博客网 时间:2024/05/18 17:24
All DNA is composed of a series of nucleotides abbreviated as A, C, G, and T, for example: "ACGAATTCCG". When studying DNA, it is sometimes useful to identify repeated sequences within the DNA.
Write a function to find all the 10-letter-long sequences (substrings) that occur more than once in a DNA molecule.
For example,
Given s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT",Return:["AAAAACCCCC", "CCCCCAAAAA"].
class Solution {public: int charToInt(char s) { switch (s) { case 'A': return 0; case 'C': return 1; case 'G': return 2; case 'T': return 3; } } vector<string> findRepeatedDnaSequences(string s) { vector<string> result; int maxNum = 1024*1024/8; int num = maxNum/sizeof(unsigned int); unsigned int found[num]; unsigned int outputed[num]; memset(found, 0, maxNum); memset(outputed, 0, maxNum); unsigned int sequence = 0; int i = 0; for (; i < 9; i++) { sequence |= charToInt(s[i]); sequence <<= 2; } int bitLen = 8 * sizeof(unsigned int); int len = s.length(); for (; i < len; i++) { sequence |= charToInt(s[i]); sequence &= 0xFFFFF; int pos = sequence / bitLen; int offset = sequence % bitLen; unsigned int label = 1 << offset; if ((found[pos] & label) == 0) { found[pos] |= label; } else { if ((outputed[pos] & label) == 0) { outputed[pos] |= label; result.push_back(s.substr(i-9, 10)); } } sequence <<= 2; } return result; }};
0 0
- Leetcode Repeated DNA Sequences
- Repeated DNA Sequences [leetcode]
- Repeated DNA Sequences
- Repeated DNA Sequences
- [LeetCode] Repeated DNA Sequences
- Repeated DNA Sequences
- Leetcode Repeated DNA Sequences
- Leetcode:Repeated DNA Sequences
- Leetcode: Repeated DNA Sequences
- Repeated DNA Sequences (Java)
- Repeated DNA Sequences
- LeetCode: Repeated DNA Sequences
- LeetCode: Repeated DNA Sequences
- LeetCode Repeated DNA Sequences
- LeetCode--Repeated DNA Sequences
- [LeetCode]Repeated DNA Sequences
- Repeated DNA Sequences
- [Leetcode]Repeated DNA Sequences
- 字符数组与字符串的区别及联系
- SecureCRT安装与配置(重点:心跳配置)
- iOS通过iTunes search检测版本更新,并提示用户更新!
- Android之Adapter用法总结
- perl面向对象
- Repeated DNA Sequences
- 控制台使用CString
- c 语言 前言
- UVa 11235 频繁出现的数值
- Openfire3.9.3源代码导入eclipse中开发配置教程
- iOS 开发库(iOS Developer Library)
- Adblock Plus的设置
- hdoj 3789 奥运排序问题
- 面试题50:树中两个结点的最低公共祖先