字节测开笔试-编程题
一共两道编程题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%的用例。
(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%的用例。
全部评论
第一题都没看懂,第二题双指针应该好解
用下split拆分如何
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
10-23 16:33
门头沟学院 Java
千千倩倩:同27给点建议,现在这个时间点可以快速看完外卖和点评,不用跟着敲,但一定要在看的时候总结每个部分的整个业务流程,对其中的实现有一个大概的印象。然后直接开始看八股,刷算法。八股和算法最好还是在项目学习中穿插着看。如果计算机基础,算法这些基础好,加上每天刻苦学习,两周可以达到勉强能面试的水平,到时候就直接海投中小厂,在约面和面试的过程中不断巩固知识。没找到实习也没关系,就当积累经验。再沉淀一波直接明年三月开始投暑期,毕竟是9本,总是有面试机会的,只要你这三个月不懈怠,面试发挥得一定不错,只要拿到一个中,大厂暑期实习,秋招就有竞争力了。总得而言,现在还有机会,但是时间非常紧张,需要你结合自己情况考虑,共勉 点赞 评论 收藏
分享