关注
我是如是做的:
(1)分词,找出那几个关键字;
(2)建立一个容器:map<string, map<int, int>> count;
其中第一个string为要统计的关键字,第二个map关键字为年份;
所以,统计就如下:count["计算机"][2016] ++;
取值: count["xxx"][year]
大致如上。
第二题:
就写了一下接口,把任意删除的思路写了一下;
其中接口采用POSA2中的thread_safe interface模式实现,减少锁的开锁,防止自我死锁;
删除任意值的想法是:首先堆的底层数据结构为一个vector,当要删除一个元素时,把这个元素与vector中最后一个有效元素交换,同时有效元素个数减1;因为交换了元素,所以,要重新调整从删除元素开始以下的元素,时间复杂度为logn。
第三题:
这一题主要还是哈希做法,但在这里,因为省份是固定的,数量并不是很多,可以采用直接查询的方式。
如:
int getHashCode(string province) {
if (province == "北京")
return 1;
......
}
这样可以得到省份对应的hashCode,这里自由发挥,也可以用Map
邮费分两种,一种是默认,一种是特殊的,所以我定义了一个结构体:
struct PostFee{
uint32_t default_fee;
uint32_t special_fee;
bool flag; //标志特殊邮费
};
####注意内存对齐,当时没考虑。。。。。
那么所有省份的邮费列表如下:
PostFee g_province_postfee[MAX_SIZE];其中,下标就代表省份的hashCode。
所以,取得一个省份的邮费可以这样:
uint32_t getPostFee(uint8_t *storage, int size, string province)
{
//合法性检测;
int hashCode = getHashCode(province);
//hashCode合法性检测
if (
g_province_postfee[hashCode].flag
) {
return
g_province_postfee[hashCode].special_fee;
}
return
g_province_postfee[hashCode].default_fee;
}
就写了这么点东西,自由发挥吧,想多了都是多余的,本就是问答题,略过了相当多的细节。
后面还有很多笔试呢,大家加油啊!!
查看原帖
点赞 2
相关推荐
点赞 评论 收藏
分享
10-10 18:54
北京航空航天大学 机械设计/制造 点赞 评论 收藏
分享
牛客热帖
正在热议
# 拼多多求职进展汇总 #
234515次浏览 2033人参与
# ai智能作图 #
23187次浏览 273人参与
# 阿里云管培生offer #
60178次浏览 1755人参与
# 25届秋招总结 #
400601次浏览 4015人参与
# 实习,投递多份简历没人回复怎么办 #
2437119次浏览 34713人参与
# 地方国企笔面经互助 #
6663次浏览 16人参与
# 北方华创开奖 #
66278次浏览 549人参与
# 机械求职避坑tips #
22694次浏览 242人参与
# 25届机械人为了秋招做了哪些准备? #
25485次浏览 357人参与
# 我的实习求职记录 #
6125118次浏览 83973人参与
# 歌尔求职进展汇总 #
42812次浏览 294人参与
# 机械人怎么评价今年的华为 #
157348次浏览 1346人参与
# 如果再来一次,你还会选择这个工作吗? #
112187次浏览 1123人参与
# 软件开发投递记录 #
1479526次浏览 23934人参与
# 硬件兄弟们 甩出你的华为奖状 #
78172次浏览 626人参与
# 经纬恒润求职进展汇总 #
99419次浏览 960人参与
# 联想求职进展汇总 #
202848次浏览 1816人参与
# 如果你有一天可以担任公司的CEO,你会做哪三件事? #
10096次浏览 217人参与
# 实习与准备秋招该如何平衡 #
723221次浏览 8553人参与
# 如果可以,你希望哪个公司来捞你 #
31813次浏览 188人参与
# 牛客租房专区 #
4726次浏览 122人参与
# 腾讯求职进展汇总 #
207894次浏览 1695人参与