leetcode Repeated DNA Sequences 哈希表
2015-07-14 11:21
363 查看
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,
Hide Tags
Hash Table Bit
Manipulation
题目意思是有一个DNA序列,10个为一串,找到重复的串,刚开始用map存string,然后超内存,然后看标签知道要用位运算,但是每次都是先存在一个stirng中,再转为二进制,超时,其实每次加新的时候前9个是已知的,再通过位运算接上就行了。
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"].
Hide Tags
Hash Table Bit
Manipulation
题目意思是有一个DNA序列,10个为一串,找到重复的串,刚开始用map存string,然后超内存,然后看标签知道要用位运算,但是每次都是先存在一个stirng中,再转为二进制,超时,其实每次加新的时候前9个是已知的,再通过位运算接上就行了。
class Solution { public: int change(char x) { if (x == 'A') return 0; if (x == 'T') return 1; if (x == 'C') return 2; if (x == 'G') return 3; } vector<string> findRepeatedDnaSequences(string s) { vector<string>res; string temp; unsigned int n=0; map<int, int>Hash; int size = s.size(); if (size < 11) return res; for (int i = 0; i < 10; i++) { n = n << 2; n = n | change(s[i]); } Hash = 0; for (int j = 10; j < size; j++) { n = n << 14; n = n >> 12; n = n | change(s[j]); if (Hash.find(n) != Hash.end())//防止出现多次而添加多次 { if (Hash == 0) { Hash = -1; temp = s.substr(j - 9, 10); res.push_back(temp); } } else { Hash = 0; } } return res; } };
相关文章推荐
- [SoapUI] 在某个测试步骤下面增加Script Assertion,运用 messageExchange 获取response content
- Functional MRI (second edition) -- 5. MR Contrast Mechanisms and Pulse Sequences
- easyui在ie下要注意的问题
- 芸芸毕业生
- 线性布局
- Assertion failure in -[UICGColor encodeWithCoder:]
- iOS隐藏UITableview下面多余的tableviewcell的线条
- iOS开发:UITableView加载多张照片导致内存上涨的问题
- 相对布局
- hibernate在使用sql查询query自动转化成model类型数据,query.addEntity
- 帧布局
- UITextField各种设置
- [Fri, 3 Jul 2015 ~ Tue, 7 Jul 2015] Deep Learning in arxiv
- ios UITableViewCell重用实现分析
- UILabel自适应里面的文字,自动调整宽度和高度
- iOS8 UISearchViewController搜索功能讲解
- iOS8 UISearchViewController搜索功能讲解 分类: ios技术 2015-07-14 10:23 76人阅读 评论(0) 收藏
- 关于UIButton的title后的自动宽
- AudioQueue(AudioToolBox)的原理与使用
- 当使用easyui时,表单的onchange事件失效