LeetCode(187)Repeated DNA Sequences
来源:互联网 发布:三次元绅士软件 编辑:程序博客网 时间:2024/06/08 07:27
基本思路:从前向后遍历所有长度为10子序列,然后将结果存放到map容器中并记录出现的次数,如果大于1,则保存。
一开始键值对是这样写的:
ACGT GCGT AA -> 1(出现的次数)
发现内存超出。
经过一次中间变换:
ACGT GCGT AA 双射 1234 3234 11 (long long 整型)
键值对变成如下这样
1234 3234 11 -> 1(出现的次数)
运行通过。
class Solution {public: vector<string> findRepeatedDnaSequences(string s) { vector<string> result; if(s.size() <= 10) return result; unordered_map<long long, int> map; for(int i = 0; i + 10 <= s.size(); i++) { string tmpString1 = s.substr(i, 10); string tmpString2; for(int j = 0; j < 10; j++) { if(tmpString1[j] == 'A') tmpString2.push_back('1'); if(tmpString1[j] == 'C') tmpString2.push_back('2'); if(tmpString1[j] == 'G') tmpString2.push_back('3'); if(tmpString1[j] == 'T') tmpString2.push_back('4'); } long long tmpLonglong = stoll(tmpString2); if(map.count(tmpLonglong)) { if(map[tmpLonglong] == 1) { result.push_back(tmpString1); map[tmpLonglong]++; } }else { map[tmpLonglong] = 1; } } return result; }};
0 0
- leetcode 187: Repeated DNA Sequences
- LeetCode #187Repeated DNA Sequences
- Leetcode 187 Repeated DNA Sequences
- LeetCode(187)Repeated DNA Sequences
- leetcode 187: Repeated DNA Sequences
- [leetcode] 187 Repeated DNA Sequences
- LeetCode 187 Repeated DNA Sequences
- LeetCode 187 Repeated DNA Sequences
- leetcode(187):Repeated DNA Sequences
- LeetCode #187: Repeated DNA Sequences
- LeetCode[187] Repeated DNA Sequences
- [leetcode][187]Repeated DNA Sequences
- Leetcode 187 Repeated DNA Sequences
- Leetcode 187 Repeated DNA Sequences
- LeetCode.187 Repeated DNA Sequences
- Leetcode Repeated DNA Sequences
- Repeated DNA Sequences [leetcode]
- [LeetCode] Repeated DNA Sequences
- 8月7日总结
- 浅析 Linux 中的时间编程和实现原理,第 2 部分: 硬件和 GLibC 库的细节
- oc学习经验
- VC通过窗口句柄获取应用程序路径
- 黑马程序员 oc随记 协议与代理模式
- LeetCode(187)Repeated DNA Sequences
- java堆栈迷宫算法
- Linux下SSH命令使用方法详解
- 安装python第三方库:xlwt及出错ImportError: No module named setuptools的解决方法
- hive-- 请不要用动态分区(如果分区可以确定)
- MyEclipse上整合spring,mybatis报错
- 问题
- JavaWeb-EL表达式
- 队列的C语言实现