class Solution {
public:
vector<string> findRepeatedDnaSequences(string s) {
unordered_map<string, int> map;
vector<string> vecStr;
if(s.size()<=10) //样例不一定长度大于10
return vecStr;
for(int i = 0; i <= s.size() - 10; i++){ //计算每一个出现的次数
string str = s.substr(i, 10);
if(map.find(str) != map.end())
map.find(str)->second++;
else{
map.insert(pair<string, int>(str, 1));
}
}
for (auto i = map.begin(); i != map.end(); i++){ //出现次数大于1次的添加进来
if(i -> second > 1)
vecStr.push_back(i -> first);
}
return vecStr;
}
};
Accepted
31/31 cases passed (44 ms)
Your runtime beats 77.64 % of cpp submissions
Your memory usage beats 23.79 % of cpp submissions (22.9 MB)
unordered_map的迭代器是一个指针,指向这个元素,通过迭代器来取得它的值。
1 unordered_map<Key,T>::iterator it;
2 (*it).first; // the key value (of type Key)
3 (*it).second; // the mapped value (of type T)
4 (*it); // the "element value" (of type pair<const Key,T>)
它的键值分别是迭代器的first和second属性。
1 it->first; // same as (*it).first (the key value)
2 it->second; // same as (*it).second (the mapped value)
成员函数:
================= 迭代器 =========================
begin 返回指向容器起始位置的迭代器(iterator)
end 返回指向容器末尾位置的迭代器
cbegin 返回指向容器起始位置的常迭代器(const_iterator)
cend 返回指向容器末尾位置的常迭代器
================= Capacity ================
size 返回有效元素个数
max_size 返回 unordered_map 支持的最大元素个数
empty 判断是否为空
================= 元素访问 =================
operator[] 访问元素
at 访问元素
================= 元素修改 =================
insert 插入元素
erase 删除元素
swap 交换内容
clear 清空内容
emplace 构造及插入一个元素
emplace_hint 按提示构造及插入一个元素
================ 操作 =========================
find 通过给定主键查找元素,没找到:返回unordered_map::end
count 返回匹配给定主键的元素的个数
equal_range 返回值匹配给定搜索值的元素组成的范围
================ Buckets ======================
bucket_count 返回槽(Bucket)数
max_bucket_count 返回最大槽数
bucket_size 返回槽大小
bucket 返回元素所在槽的序号
load_factor 返回载入因子,即一个元素槽(Bucket)的最大元素数
max_load_factor 返回或设置最大载入因子
rehash 设置槽数
reserve 请求改变容器容量