查看: 1451| 回复: 3
跳转到指定楼层
上一主题 下一主题
收起左侧

[其他] 请教yelp 一道OA的题目

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
这个题目                                                                 
这道题目不少人说用map就可以了,我感觉在c++里面似乎不可以啊。如果用map<string, int>
用来排序的是string, 不是int,如果<int, string>似乎更加不可以。请问具体用map怎么实现?谢谢!

上一篇:认真刷题求组队,相互监督鼓励提高,非诚勿扰
下一篇:python first bad version
🔗
stellari 2017-1-31 12:31:24 | 只看该作者
全局:
如果就按这题的问法:给定一组字符串,只需求一次出现次数最多的string,那当然只用一个unordered_map就好了。将string依次放入unordered_map中,每放入一个string s,就更新s的出现次数N。然后看N是否大于史上最大次数MAX。是的话就更新MAX即可。
回复

使用道具 举报

🔗
 楼主| Hmoon 2017-1-31 12:37:19 | 只看该作者
全局:
stellari 发表于 2017-1-31 12:31
如果就按这题的问法:给定一组字符串,只需求一次出现次数最多的string,那当然只用一个unordered_map就好 ...

但是如果有好几个同样是最大,这个有点麻烦。我的做法是放在vector里面,然后sort.不过今天做了,是merge two sort vector of class, 有个bug, 不知道让不让我过。。。。。
回复

使用道具 举报

🔗
stellari 2017-1-31 12:43:28 | 只看该作者
全局:
Hmoon 发表于 2017-1-31 12:37
但是如果有好几个同样是最大,这个有点麻烦。我的做法是放在vector里面,然后sort.不过今天做了,是merge ...

一样的,只需要加小小改动即可,比如:开一个vector来记录当前出现次数为MAX的string。如果有一个s的次数超过了MAX,就清空vector,只放入s;如果有个s的次数恰好等于了MAX,就加入vector。最后这个vector里剩下的一定是出现次数最多的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表