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

[高频题] 求问一道codesignal常见题目

全局:

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

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

x
求问一道codesignal的题目的思路:


大概的意思是给一个数组A,每个位置上有一句话,然后每句话会中间包含一些idXXX, XXX是1-999之间的一个数字。然后id前会有一个@。但如果不同的idxxx连续出现只有第一个id前面有@比如说This is a person @id665,id32,id777 that we like. 如果不连续出现就会是每个id前都有一个@。比如说This is @id777 a @id666 big guy.

还会给另外一个数组存放有效的idxxx. 比如说像[id321, id65, id777]这样。

求每一个有效的idxxx在数组A所有句子中所出现的次数之和。(如果一个idxxx在一个句子中多次重复出现那么只算一次)

感谢各位大佬了!写具体解答可以有偿。

Chegg 上找的模糊截图:

image.png (237.08 KB, 下载次数: 6)

image.png

评分

参与人数 1大米 +3 收起 理由
14417335 + 3 给你点个赞!

查看全部评分


上一篇:一篇(正经的)Codeforces入门指南
下一篇:刷题需要记忆内置函数吗?
全局:
楼上的答案感觉可行 hashMap统计频率再计算
回复

使用道具 举报

🔗
q5chen 2022-11-18 09:05:03 来自APP | 只看该作者
全局:
先建一个dict, key是所以members的id,value是出现次数

遍历一遍messages,

    对于每个message,维持一个set appeared,存message中已经出现的id,和flag have_seen_at,代表是否刚刚遇见''@id''.   然后遍历一遍message,在每个位置如果have_seen_at,就检查是否是'',id'',否则就查''@''. 如果是个id,就查它在不在 appeared里,如果不在就加进去并且在dict中count + 1

回复

使用道具 举报

全局:
还在招人吗这个
回复

使用道具 举报

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

本版积分规则

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