一般哈希表都是用来快速判断一个元素是否出现集合里
第一次看哈希表有点懵
有效的字母异位
思路
第一串字符先统计个数,第二串字符再减个数,最后看看是不是0.思路很新奇。
注意
使用数组来做哈希的题目,是因为题目都限制了数值的大小。
两个数组的交集
代码注释
unordered_set中查找元素find():返回一个迭代器,如果没有找到返回容器结束迭代器
使用unordered_set可以对列表元素去重
高级循环结构:for(int i : num)
设置哈希列表:hash[1005] = 0
快乐数
比较好玩的是这个结果只有两种,一种是收敛到1,另一个是循环起来,不可能是到无穷大,因为三位数最大就是999算出来就是234,所以它一定会回到在0到234之间,要么循环起来要么到1。好神奇。数学真是个奇妙的东西,哈哈哈。
两数之和
auto:可以自动判断出它的类型,迭代器时用
返回一个向量时用{},空则表示空列表。
pair表示返回一个数字对,用在map添加数据里。
新函数技巧
C++
size():只能统计字符串和向量的个数
sizeof():返回数组占用的字节大小
迭代器无法直接输出,要想输出前面加*
python
odd():获取字符的ASCII码
defaultdict:初始化一个字典,里面没有赋值的key默认赋值为0。(from collections import defaultdict)
Counter:统计字符串中字符出现的次数。(from collections import Counter)