lc187-Repeated DNA Sequences 發表於 2016-10-15 | 分類於 leetcode | 0 comments | 123456789101112131415161718192021class Solution {public: vector<string> findRepeatedDnaSequences(string s) { unordered_map<string,int> mp; vector<string> result; if(s.length()<10) return result; for(int i=0;i<=s.length()-10;i++){ string temp=s.substr(i,10); if(mp.find(temp)==mp.end()) { mp[temp]=1; } else mp[temp]++; } for(auto k:mp){ if(k.second>1) result.push_back(k.first); } return result; }}; 1234567891011121314151617181920212223242526272829303132class Solution{public:vector<string> findRepeatedDnaSequences(string s) { int l = s.length(); // vector<int> set; unordered_map<int, int> set; unordered_map<int, int> res; vector<string> ress_v; int k = 0; map<int,int> m; m['C'-'A'] = 1; m['G'-'A'] = 2; m['T'-'A'] = 3; for (int i = 0; i < l; i+=1) { k = k << 2; k = k & 0xFFFFF; k |= m[s[i]-'A']; if (i > 8) { if (set[k]>=1 && find(ress_v.begin(), ress_v.end(), s.substr(i-9,10))==ress_v.end()) ress_v.push_back(s.substr(i-9,10)); // } set[k]+=1; } } // for (auto i:set) { // if(set.second > 1) // ress_v.pushback{} // } return ress_v;}};