大厂软开秋招笔试(算法)真题2

一条路上依次排列着N个七色豆,七种颜色分别用字符abcdefg表示。
一条机器小人沿着这条路往前捡豆豆,机器小人会按下发给它的指令串进行动作:指令串由abcdefg*这八个字符组成。其中abcdefg是豆豆的颜色,表示机器小人接下来可以捡一粒该颜色的豆豆。如果指令串接下来出现"*这个字符,表示机器小人可以重复前一个动作任意多次(包括0次)。
如果指令串执行结束,或者遇到当前指令不能匹配的豆豆,机器小人停止前进。
求机器小人最多可以捡到多少个豆豆。
输入描述:
第一行输入一个字符串,为N个豆豆的颜色,长度N不超过1000
第二行输入一个字符串,为机器小人的指令串S,S长度不超过1000
输出描述:
第一行输入一个字符串,为N个豆豆的颜色,长度N不超过1000
第二行输入一个字符串,为机器小人的指令串S,S长度不超过1000
补充说明:
整数值,表示机器小人最多可以捡到多少个豆豆
示例:
输入:
abbbbcdefg
ab*c*d
输出:
7

在一个神秘的森林中,住着一群聪明的小动物。每只小动物都有一个独特的魔法数字。一天,森林中的智者决定进行一次特殊的仪式,需要小动物们按顺序站好,从中挑出不少于一只小动物站成一队,现在需要从这个队伍中挑选出来一些小动物,实现挑出的小动物的魔法数字之和是最大的,要求挑选出来的小动物不能改变其在原始队伍中的相对位置,并且挑选出来的小动物在原队伍中的位置间隔不能小于k。
输入描述:
第一行包含两个整数n和k,表示小动物的数量和最小位置间隔。数组长度n的范围是[1,100000],最小距离k的范围是[1,n]
第二行包含j个整数,表示每只小动物的魔法数字。每个魔法数字的取值范围是[-10000.10000]
输出描述:
输出一个整数,表示满足条件的最大和。
示例 1:
输入:
5 2
3 2 5 10 7
输出:
15
说明:
共有5个小动物,要求挑选出的小动物在原始队伍中的位置间隔不能小于2,当前五个小动物站成一队后,魔法数组分别为3 2 5 10 7,按照要求得到的最大的值为15,其挑选出的队伍为3 5 7
请使用Golang实现

肖林在大学毕业后,计划安排一次愉快的旅游,所以提前对想去的旅游景点进行了量化评估,方便挑选出最优的旅游路线。评估维度分为三个属性,分别为m、n和(x,y),其中m代表疲劳值,n代表兴奋值,(x,y):代表景点位置。家所在位置为(0,0)。并且从旅游景点(x1,y1)到旅游景点(x2,y2),会产生一定的疲劳值,其疲劳值为|x1-x2|+|y1-y2|。
选择k个旅游景点,计算最终的疲劳值cm和兴奋值cn,而cn/cm则代表本次旅游的舒适值,舒适值最高的旅游路线,即表示为最优的旅游路线。cm代表所有旅游景点的疲劳值之和,再加上路上所产生的疲劳值。cn代表所有旅游景点的兴奋值之和。
现在有t个旅游景点,肖林准备选择k个景区进行游玩,旅游路线需从家里出发,经过k个景区并最终回到家里。请为肖林规划好最优的旅游路线。
输入描述:
第一行输入t k,空格分割,分别代表旅游景点总数和计划游玩的旅游景点个数。0<k<=t。
第二行到第t+1行输入m n (x y),空格分割,代表每个旅游景点的属性。
输出描述:
舒适值(保留6位小数点),表示最优旅游路线的舒适值。
示例:
输入:
3 2
6 20 (10 15)
-5 10 (30 27)
-15 10 (20 25)
输出:
0.370370
说明:
最优旅游路线为:(0,0)->(10,15)->(20,25)->(0,0)或者(0.0)->(20,25)->{10,15)->(0,0)
计算出cm=81,cn=30,最终计算的值为0.370370

微隔离产品有个流量可视的模块,流量可视会图形化展示服务器之间的所有访问关系,其中访问关系需要匹配***策略以让用户观测该流量是否被放行or拒绝,拒绝的原因是匹配到了某一条***策略。请你设计一个算法来快速完成访问关系的策略匹配。
流量数据和***策略均为五元组(src_ip,src_port,dst_ip,dst_port,protocol)
流量五元组示例和格式说明
src_ip:字符串,仅支持ipv4格式。如:1.1.1.1
src_port:整数,1-65535。如:222
dst_ip:字符串,仅支持ipv4格式。如:1.1.1.1
dst_port:整数,1-65535。如:111
protocol:整数:仅支持tcp:17,icmp:1,udp:6
***规则示例和格式说明
src_ip:字符串,支持ip段/单个ip/任意IP。如:1.1.1.1,1.1.1.1-1.1.10.1,0.0.0.0
src_port:字符串,支持端口范围/单个端口/任意端口。如:80,80-90,0
dst_ip:字符串,支持ip段/单个ip/任意IP。如:1.1.1.1,1.1.1.1-1.1.10.1,0.0.0.0
dst_port:字符串,支持端口范围/单个端口/任意端口。如80,80-90,0
protocol:整数,支持17/6/1/0(tcp:17,udp:6,icmp:1,ALL:0)

有n颗珍珠,编号0~n-1,它们中间有细线连接,每颗珍珠至多与其他3颗珍珠连接,且不形成环路,所有珍珠都连接在一起。对于每颗珍珠,他们的重要度定义如下:假设去掉编号为k的珍珠,那么剩下的珍珠按照连接关系会分裂成1-3组,每组的珍珠数量的乘积即为k号珍珠的重要度。求:具有最高重要度的珍珠有几颗?
输入描述:
第一行输入n,下面n行输入编号0~n-1的珍珠的邻接珍珠,第一个数代表邻居的数量k,后面跟k个数代表邻居编号,为了避免重复数据,只输入编号比自己编号大的邻居。
示例:
5
1 1
1 2
2 3 4
0
0
上面的数据代表:
0号连接着1;
1号连接着2;
2号连接着1,3,4,因为1比2小,之前的数据里包含了这个连接关系,所以只输入3,4;
3号连接着2,因为2比3小,3没有与其他编号比它大的数连接,所以输入0;
4号连接着2,因为2比4小,4没有与其他编号比它大的数连接,所以输入0;
输出描述:
一个整数,代表具有最高重要度的珍珠的数量
对于刚刚输入的例子,输出为
3
解释:
节点0的分数是4
节点1的分数是1*3=3
节点2的分数是1*1*2=2
节点3的分数是4
节点4的分数是4
最高得分为4,有3个节点得分为4,输出3
示例1
输入:
5
1 1
1 2
2 3 4
0
0
输出
3
请使用Golang实现该算法

小红和小紫正在玩一个游戏,每一关都有一个分数。如果某人某一关分数比上一关高,但另一个人这一关分数比上一关低,那么他就可以嘲笑对方。如果两个人这一关游戏的分数都比上一关多,则增量更多的可以嘲笑对方;如果两个人这一关游戏的分数都比上一关少,则减量更少的可以嘲笑对方。只有当他们的增量相同或者减量相同时,才不会互相嘲笑。
例如,假设小红第一关的分数为5,第二关的分数为10;小紫第一关的分数为2,第二关的分数为8,显然小红增加的比小紫多,那么小红就可以嘲笑小紫。
现在给定了小红和小紫每一关的分数,你可以选择一段连续的关卡,使得这一段关卡中两个人都不会互相嘲笑,问最多可以选择多少个关卡。特别的,一段连续关卡中的第一关两人不会互相嘲笑。
输入描述:
第一行输入一个正整数几,代表关卡数。
第二行输入n个整数ai;,代表小红每一关的分数。
第三行输入n个整数bi;,代表小紫每一关的分数。
2 ≤n< 10^5
-10^9≤ ai,bi≤ 10^9
输出描述:
输出可以选择最多的关卡数。
示例 1:
输入:
5
1 2 3 1 3
-1 0 3 -1 1
输出:
2
说明:
可以选择前两个数,[1,2]和[-1,0]相似,长度为2。选择后两个数也是可以的。

对于一个仅由左括号'('和右括号')'组成的字符串,小红想知道它的最长合法前缀的长度是多少。
对于某一个前缀,我们定义它是合法的,当且仅当该前缀满足以下条件:
存在一种拆分方案,可以将该前缀拆分为若干对匹配的括号'()'如'(),'()()','(())'都是合法的,而')()(','))'是非法的。
特殊的,空串我们认为也是合法的。
输入描述:
第一行输入一个整数n,表示字符串的长度。
接下来一行输入一个长度为n的,仅由'('和')'组成的字符串
1 ≤n≤ 10^5
输出描述:
输出一个整数,表示最长的合法前缀长度。
示例1
输入
5
(()))
输出
4
说明
可以证明前缀(())是最长且合法的前缀
全部评论

相关推荐

04-13 15:31
门头沟学院 Java
某游戏厂,面了 1h。大部分时间都是问纯八股,项目一点没问,手撕也很简单,网上搜到的面经大部分是C++八股文轰炸或者项目拷打。是不是因为一开始就对我不感兴趣所以干脆不为难我了面经如下:自我介绍游戏经历主要编程语言(我说的Java 但是岗位写的是C++/GoLang)求职方向是后端,为什么选择游戏服务器开发有Linux使用经历吗(项目部署)用过的Linux命令查看文件用什么命令,查看大文件呢?租服务器会关注服务器配置吗,如何确定这个配置能够满足项目部署的需求?会分析服务器使用情况吗(CPU、内存使用率),如何定位具体的线程资源使用情况?讲讲数组和链表结构、常用操作、时间复杂度为什么数组支持随机访问(内存连续+偏移量)讲讲栈和队列结构、区别、应用讲讲RabbitMQ如何用数组实现队列讲讲哈希,平时用过哪些哈希的数据结构哈希表的key如何获得什么是哈希冲突哈希底层原理了解吗面向对象三大特性现场写一下多态的例子讲讲平时用过的设计模式手撕反转链表、反转字符串反问的时候面试官说我可以自信一点()最后给点建议吧:纯八股 + 项目一点没问,大概率不是“不感兴趣所以不为难你”,更可能是:1,面试官习惯按固定流程走,先筛基础2,或者他觉得项目跟岗位匹配度不高,问了也白问,3,面了一个小时还给建议,说明你至少过了他的及格线。别自己加戏
查看23道真题和解析
点赞 评论 收藏
分享
04-13 09:20
已编辑
电子科技大学 C++
自我介绍 实习1. 去上一家公司实习的目的?2. 为什么离职?3. 上一家公司职场氛围和交流氛围如何?4. 上一家公司实习主要的工作背景和产出?5. 介绍一下上一家公司实习的背景和原理6-12. 实习拷打13. 上一家公司有没有 AI 提效工具?有没有 AI 培训?其他员工有没有相关的使用经验?14. 你为什么在实习开发中使用 AI 工具吗?15. 总结一下上一家公司实习你的收获是什么?16. 实习期间,你遇到最困难的一个点?你是如何解决的?项目1. Raft 项目的动机是什么?算法无闲聊1. 你转专业了吗?还是自学?2. Golang 和 C++ 哪个用得比较多?3. 面试官介绍 Golang 和 C++ 在后端和鸡架开发之间的差异...4. 能实习多久?专业其他同学的规划是读研还是就业?5. 你为什么想要就业?你不用上课吗?6. 有没有想过跨考?7. 反问总结第一次约面后,面试官临时有会,面试前 5 分钟取消会议。推迟了一天,然后又迟到 10 分钟。自我介绍完就感觉像是 KPI 面了,不过没关系,感觉还是很好为人师的面试官,反问环节直接让他帮我把从 C++ 到 Golang 学习路线规划了一下,也请教了一下应该阅读哪些书籍。
发面经攒人品
点赞 评论 收藏
分享
04-10 14:00
门头沟学院 Java
4/1 hr 电话约面的时候问了是否可以转 golang, 同意后约面面试官开头介绍技术栈为 golang面试体验很好, 问答之后基本都有正面回应, 但没怎么挑我的刺, 面试官可能不熟悉 JAVA 或根本就不想要我没录音可能有遗漏Q1 自我介绍Q2 你是怎么构建这个 agent 的 (组装链 + 执行链)Q3 在执行过程中出现问题怎么解决的, 采用了什么降级措施吗 (没有采用, 直接终止)Q4 你项目上说了 RAG, 你来介绍一下 RAG 在你的项目中是怎么使用的 (作为 advisor 角色, 在思考流程时通过知识库的形式组装到 prompt 中)Q5 你项目使用了 sse, 说说 sse 是什么与 websocket 有什么区别? (sse 单向构建简单)Q6 项目中你是怎么使用 sse 时? (在 trigger 层中配置了 sse 的三个参数, 使用 emitter)Q7 你刚才提到了 trigger 层这一 DDD 领域概念, 你知道 DDD 吗? (不太熟悉, 扯了一下分层, VO, 聚合根)Q8 你这个高并发本地服务平台有什么用? (黑马点评)Q8 你第二个项目高并发平台测试过多高并发度吗? (瞎扯了几百并发度, 实际还没测试)Q9 你说实现了 session 共享怎么实现的, redis 的 key 和 value 怎么储存的 (通过 redis 实现的, 将 session id 作为 key 存储到 redis 中, key 和 value 都是 string)Q10 你说能够无感 token 刷新与权限校验是怎么实现的 (这里我忘记了, 就扯 redis 存然后将 token 返回给前端浏览器)Q11 你说返回给前端浏览器, 然后我换一个浏览器是不是 token 就失效了? (是, 因为 token 是存在浏览器中的)Q12 你提到了 cache aside, 它是什么? (redis 未命中则取数据库, 还说了一下另外两种, 说了一种另一种忘记了)Q13 你说用延迟双删实现过期时间补偿, 什么是延迟双删 (先删 redis 后 sleep 再删 redis)Q14 这个 sleep 设置时间是怎么确定的? (由于前面扯了几百并发度, 就说在这个并发度下这个时间最合适)Q15 你提到了互斥锁, 聊聊你项目里的互斥锁? (首先是 setnx 与 ex 手工首先的互斥锁, 但没有过期续费和可重入功能所以还使用了 redisson)Q16 你提到了布隆过滤器? 说说它的原理 (本质是 hash 表 + 多个 hash 函数, 对应槽位为 0 一定不存在, 全为 1 不保证一定存在)Q17 怎么提高布隆过滤器的准确度 (根据准确度的计算公式, 多增加 hash 函数来实现)Q18 你使用了 lua 脚本, 它的原子性是怎么实现的 (这个一点都不知道, 直接回答了不知道)Q19 后面你提到了 rabbitmq 消息队列, 为什么使用它, 它有哪些使用场景 (聊了 redis 自带的三种消息队列各自的缺点, 但使用场景没讲清除)Q20 你使用了 hyperloglog, 你知道它的原理吗 (不熟悉, 回答不知道后面自己补充了 geo 的原理)Q21 你知道 zset 是怎么实现的吗? (skiplist + score / ziplist)手撕:Q1 最大子数组和 (秒后讲一下原理, dp)反问:Q1 组内业务是做什么的? (QQ 浏览器 + 推荐广告)Q2 是推荐算法吗? (不是, 就是根据已经为用户选好的广告来推送)反思:面试之前都是复习第一个 agent 项目和八股去了, 导致后面的点评很多都忘记了, 后面打算改一下简历, 去掉一些没有和业务相关的技术.还要修正一下自己的回答方式, 多从 业务 -> 技术的角度来思考回复
查看25道真题和解析
点赞 评论 收藏
分享
04-07 17:56
已编辑
门头沟学院 golang
pdd 是我面试体验过的最差的公司,没有之一。面试官是一个年近中年老油条。1. 开口爆典问学历,是 985/211 吧?哦原来是啊,我没怎么听说过,不怎么有名吧。2. 有实习吗?拿到 offer 了吗?3. 我们组主要用 Java, go 在我们公司用的其实比较少,主要是在某节用得多,为什么想要来上海工作?我说随便选的,北京上海深圳随机选一个(第一个问题问完我就已经不想回答了)4. 然后就开始给我戴帽子:“哦,也就是说你对你的未来没有什么规划是吧?”我听到这实在蚌埠住了,我直接和他说:“我不认为是我自己的规划有问题,你们公司在该岗位没有写明语言限制,而且我的简历上也写明了我期望的工作是 golang 后端开发,面试安排也是你们公司安排的,是你们公司的招聘部门的规划出现了问题。”5. 然后他一看我很强硬他怂了,然后就跟我说可不可以接受转语言,如果不可以接受他可以帮我对接一个 go 开发相关的面试官。然后我钓着他,说我写过一些 Java 开发的项目,如果你们组业务对口,我也不是不接受转语言。然后他巴拉巴拉讲了一串他们组的业务(我一个字没听),然后我和他说:“那我还是坚持找 golang 开发的岗位吧。”然后就挂了,跟我说另安排招 golang 的面试官面试。总结:全程五分钟,我从寝室出来找个位置+调试设备都花了3-4个五分钟?
钱嘛数字而已:感觉像新手面试官,哪有开局就给孩子们讲业务的,谁面试谁呢?
查看5道真题和解析
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务