187. Repeated DNA Sequences
来源:互联网 发布:php popen 异步 编辑:程序博客网 时间:2024/05/23 13:13
Problem
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”].
Solution
Discuss中的回答
“A”,“C”,“G”,“T”的ASCII码分别是65,67,71和84,转换成二进制分别是01000001,01000011,01000111,01010100,可以看到他们的最后三位是不一样的。所以只需要用最后三位就可以区别这四个字母。
class Solution {public: vector<string> findRepeatedDnaSequences(string s) { unordered_map<int,int> map; vector<string> ret; int key = 0; for(int i = 0;i<s.length();++i) { key = ((key<<3)|(s[i] & 0x7)) & 0x3FFFFFFF; if(i<9) continue; if(map.find(key) == map.end()) map[key] = 1; else if(map[key] == 1) { ret.push_back(s.substr(i-9,10)); map[key]++; } } return ret; }};
0 0
- 187. Repeated DNA Sequences
- 187. Repeated DNA Sequences
- 187. Repeated DNA Sequences
- 187. Repeated DNA Sequences
- 187. Repeated DNA Sequences
- 187. Repeated DNA Sequences
- 187. Repeated DNA Sequences
- 187. Repeated DNA Sequences
- 187. Repeated DNA Sequences
- 187. Repeated DNA Sequences
- 187. Repeated DNA Sequences
- 187. Repeated DNA Sequences
- 187. Repeated DNA Sequences
- 187. Repeated DNA Sequences
- 187. Repeated DNA Sequences
- 187. Repeated DNA Sequences
- 187. Repeated DNA Sequences
- 187. Repeated DNA Sequences
- 密码学扫盲:加密、认证、公钥、私钥
- FFMPEG视音频编解码零基础学习方法
- 学习TensorFlow,生成tensorflow输入输出的图像格式
- java反射的例子
- python网页自动摘要和关键词提取
- 187. Repeated DNA Sequences
- googles示例RecyclerView
- Java Singletom 单例模式 常用实现方式
- inteliij 14 新建maven项目 停在 [INFO] Generating project in Batch mode 的解决办法
- 网络编程知识(2)--Socket理解
- java基本数据类型、对应的封装类以及字符串之间的相互转换
- mysql开启缓存的一些语句
- 二分法插入排序代码
- ClouderaManager修改集群的IP