字节测开笔试-编程题

一共两道编程题100% 6%.....
(1)两个数组an、bn,数组cn=[ci=max(ai,bi)]。数组cn是根据an和bn的值动态变化的。定义了两种操作:op=1,x,y:交换ax和ay;op=2,x,y:交换bx和by。
输入:an,bn,m组操作[(1, x, y), (2, x, y), ......]
输出:m行,每行对应操作后的数组cn之和。
思路:暴力解法容易超时。可以先算cn的和sum,之后每次操作之前先让sum减去cx和cy,在进行操作并更新cx和cy,在得到sum = sum +cx +cy。这样就不用遍历cn求和,不会超时。

(2)小红拿到了一个仅有英文字母组成的字符串,她想知道某个单词在该字符串中出现了多少次?
输入用例:
S:bobob
T:bob
输出:
2
思路:直接调用python string.count()无法得到正确答案。例如”bobob”会视为有两个”bob”,单词后缀和前缀有重叠的部分也会算作新单词。直接使用暴力解法,逐个遍历S会超时。考虑用下标j遍历S每次匹配到一个单词T,j就往后移T/2个位置,这样可以把后缀算进去,但还是只能通过6%的用例。
全部评论
第一题都没看懂,第二题双指针应该好解
点赞 回复 分享
发布于 2023-09-18 15:34 上海
用下split拆分如何
点赞 回复 分享
发布于 2023-09-18 10:14 安徽

相关推荐

宇算唯航:目测实缴资本不超100W的小公司
点赞 评论 收藏
分享
白火同学:只是实习的话,你这份简历应该也差不多了。真要优化的话,因为面实习的话,没有开发经验,面试更重视技术栈水平。 1、重视JavaSE的基础吧,集合、泛型算是比较基础的基础,多线程、反射、JVM内存模型才是基础; 2、技术栈写到具体的点,比如Elasticsearch的使用写到某个点,限制面试官自由发挥,防止问了相关问题最后又答不上,如果真没把握建议不写,降低面试官的心理预期; 3、技术栈不要重复,比如技术栈第二条和第八条可以合并改为“熟悉Redis中间件,包括基本数据结构、缓存策略、持久化机制,了解缓存三剑客及其解决方案,并有相关项目经验。”; 4、项目指标量化,比如“达到xx秒的响应速度”(不过这个就有点偏校招社招的要求了,实习简历不写也无伤大雅)。
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

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